Я пытаюсь портировать хранимые процедуры Oracle (plsql) в функцию postgresql (pl / pgsql).
В Oracle можно определить хранимую процедуру с параметрами IN и OUT.
CREATE OR REPLACE PROCEDURE MY_TEST(foo IN NUMBER,
bar OUT NUMBER)
IS
BEGIN
bar := 1
END
Это сохранит значение 1 в переменной, которая передается хранимой процедуре.Я могу назвать это следующим образом:
DECLARE
outValue NUMBER ;
BEGIN
Exec MY_TEST(10, outValue);
DBMS_OUTPUT.PUT_LINE('Value Returned Is : '||outValue) ;
END ;
В Postgresql (pl / pgsql) я могу определить функцию, подобную этой:
CREATE OR REPLACE FUNCTION MY_TEST(foo IN NUMBER,
bar OUT NUMBER)
BEGIN
bar := 1
END;
$body$
LANGUAGE PLPGSQL;
Однако я не могу использовать параметр outтак же, как я мог в оракуле.В postgresql параметр OUT определяет возвращаемое значение.В хранимых процедурах оракула нет возвращаемых значений, но вместо этого запишите выходные данные в переменную, переданную в вызове
Есть ли что-то, что я упустил, что позволило бы мне использовать функции pl / pgsql в аналогичныхКак используется хранимая процедура в приведенном выше примере?
Любые советы приветствуются.