Обложка канала

Oracle Developer👨🏻‍💻

Все о разработке в СУБД "Oracle" SQL, PL/SQL, оптимизация, архитектура, сертификации и многое другое.

Oracle Developer👨🏻‍💻

3 года назад
Открыть в
Ок. Давайте напишем первую функцию на 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