SYS vs mutating

тобобетобор
Дата: 11.03.2011 14:32:49
выполняю скрипт под обычным юзером:
SQL> create table mut(c number)
Table created.
SQL> insert into mut values (1)
1 row created.
SQL> create or replace function get_c return number 
as
  result number;
begin
  select max(c)+1 into result from mut;
  return result;
end;
Function created.
SQL> update mut set c=get_c
update mut set c=get_c
Error at line 17
ORA-04091: table TST.MUT is mutating, trigger/function may not see it
ORA-06512: at "TST.GET_C", line 5

Script Terminated on line 17.
получаю mutating. Теперь выполняю под SYS:
SQL> create table mut(c number)
Table created.
SQL> insert into mut values (1)
1 row created.
SQL> create or replace function get_c return number 
as
  result number;
begin
  select max(c)+1 into result from mut;
  return result;
end;
Function created.
SQL> update mut set c=get_c
1 row updated.
вопрос - почему ? SYS он особенный чтоли ? ему правила не писаны ? ))
Edkonst2008
Дата: 11.03.2011 15:04:31
тобобетобор,

Я не ораклист, но может грантов на таблицу / функцию не дано?
тобобетобор
Дата: 11.03.2011 15:08:06
Edkonst2008
Я не ораклист, но может грантов на таблицу / функцию не дано?
нет, ответить на данный вопрос не ораклистам не дано ))
SQL*Plus
Дата: 11.03.2011 15:10:48
тобобетобор,
Выполните
SELECT * FROM v$version;
и покажите результат.
тобобетобор
Дата: 11.03.2011 15:16:02
SQL*Plus
тобобетобор,
Выполните
SELECT * FROM v$version;
и покажите результат.

проверялось на 9i, 10g, 11 - результат везде один.
т.е. это типо "фича" ))
orawish
Дата: 11.03.2011 15:34:40
тобобетобор
SQL*Plus
тобобетобор,
Выполните
SELECT * FROM v$version;
и покажите результат.

проверялось на 9i, 10g, 11 - результат везде один.
т.е. это типо "фича" ))

сису на мутациях втыкаться - не по чину
но поскольку у него в схеме колупаться всуе вендор не велит - практического значение это обстоятельство не имеет
а так?
Дата: 11.03.2011 15:40:21
create or replace function get_c return number is
pragma autonomous_transaction;
result number;
begin
  select max(c)+1 into result from mut;
  return result;
end;
/
-2-
Дата: 11.03.2011 15:43:36
тобобетобор
проверялось на 9i, 10g, 11 - результат везде один.
undo_management=auto?
ORA__SQL
Дата: 11.03.2011 15:45:50
-2-
тобобетобор
проверялось на 9i, 10g, 11 - результат везде один.
undo_management=auto?

А каким образом undo_management влияет на мутацию?
тобобетобор
Дата: 11.03.2011 15:49:32
orawish
в схеме колупаться всуе вендор не велит
кстати все объекты могут быть созданы в другой схеме и мутации нет, если выполняет скрипт сис.
мда, как то это неправильно, сис не по законам живет ))