Ок. Давайте напишем первую функцию на PL/pgSQL.
Функция будет возвращать строку в Uppercase + выводить в буфер вывода информацию о входной и выходной строках (просто для примера).
Код функции:
Согласитесь есть что-то общее с PL/SQL, но не 1 в 1.
🔸 LANGUAGE plpgsql - язык кода на PL/pgSQL (может быть Sql, Python и др).
🔸 RAISE NOTICE ~ dbms_output
🔸 immutable = deterministic
В синтаксисе создания модулей можно наворотить многое. Ссылка на доку под постом.
Вызов функции:
Продолжение следует 🎓
#postgresql #plpgsql
Oracle Developer
Функция будет возвращать строку в Uppercase + выводить в буфер вывода информацию о входной и выходной строках (просто для примера).
Код функции:
CREATE OR REPLACE FUNCTION my_schema.my_upper(p_text text)Примечание: код можно написать лаконичней.
RETURNS text
LANGUAGE plpgsql
immutable
AS $function$
declare
v_out text;
begin
v_out := upper(p_text);
raise notice 'In: %. Out: %', p_text, v_out;
return v_out;
end;
$function$;
Согласитесь есть что-то общее с PL/SQL, но не 1 в 1.
🔸 LANGUAGE plpgsql - язык кода на PL/pgSQL (может быть Sql, Python и др).
🔸 RAISE NOTICE ~ dbms_output
🔸 immutable = deterministic
В синтаксисе создания модулей можно наворотить многое. Ссылка на доку под постом.
Вызов функции:
select my_upper('my text');Обратите внимание на вызов. Никакого from dual нет. Кстати, после выхода Oracle 23, мы так же будем избавлены от этого рудимента (кто перейдет 😁)
Продолжение следует 🎓
#postgresql #plpgsql
Oracle Developer
👍22🤯1