Oracle Developer👨🏻‍💻
3.22K subscribers
607 photos
67 videos
2 files
484 links
🔝 канал о разработке в СУБД Oracle:
SQL, PL/SQL, оптимизация, архитектура и многое другое...

Backend-pro.ru - обучение по различным программам, связанных с backend-разработкой для ФЛ и ЮЛ.

Отец-основатель: @denis_dbd Кивилёв Денис
Download Telegram
Ок. Давайте напишем первую функцию на PL/pgSQL.
Функция будет возвращать строку в 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