Выполнение временной процедуры
Определение оператора выполнения временной процедуры.
Спецификация
<выполнение временной процедуры>
::=Синтаксические правила
Правила оформления <процедурного блока> приведены в разделе Общий вид процедурного блока.
Примечание
Опции AUTHID и FOR DEBUG не запрещены по синтаксису, но реально их использовать затруднительно.
Примеры
1) Временная процедура:
execute block result int
declare
var i int; //
code
i := 1; //
print("execute block");//
return i; //
end;
2) Временная процедура с SQL-запросом:
create or replace table test(i int);
execute block result int
declare
var i int; //
code
i := 12; //
execute direct "insert into test values(1)";//
execute "insert into test values(2)";//
return i; //
end;
select * from test;
3) Временная процедура с курсором:
execute block result cursor(i int)
declare //
var b typeof(result); //
code //
open b for "select i from test;"; //
return b; //
end;
4) Рекурсивный вызов временных процедур:
execute block result int
declare
var i int; //
code
i := 123; //
execute direct "execute block result int for debug declare var i int; //
code
i:=12; //
execute direct \"insert into test values(3)\"; //
execute \"insert into test values(4)\"; //
return i; //
end;"; //
return i; //
end;
select * from test;