Доступные версии документации

Режим выполнения хранимых процедур

Функция

Задает режим выполнения хранимых процедур.

Спецификация
   
<режим выполнения процедур>::=
<от имени владельца>::=
DEFINER
<от имени текущего пользователя>::=
CURRENT_USER
Общие правила
  1. Команда действует только на канал, по которому она подана.

  2. Опция <от имени владельца> устанавливает режим выполнения всех внутренних SQL-запросов процедуры, созданной без опции AUTHID DEFINER, от имени пользователя-владельца процедуры.

  3. Опция <от имени текущего пользователя> устанавливает режим выполнения всех внутренних SQL-запросов процедуры, созданной без опции AUTHID CURRENT_USER, от имени текущего пользователя соединения.

Пример
username SYSTEM/MANAGER
drop user USER1 cascade;
create user "USER1" identified by 'USER1';
grant DBA to USER1;

create or replace table TEST(i int, ch char(66));
insert into test values (1,'test record');
set session procedure execute by default as definer;
create or replace procedure TEST_PROC(IN id INTEGER) result integer
declare
  var i int;//
code
  execute "select count(*) from test;" into i;//
  return i; //
end;
grant execute AS OWNER on SYSTEM.TEST_PROC to USER1;

USERNAME USER1/USER1
execute SYSTEM.TEST_PROC();
Return value = 1
Заметили ошибку?
Выделите текст и нажмите Ctrl + Enter