CSS for code highlight

16 октября 2022

PL/SQL в операторе WITH (Oracle)

Случайно наткнулся на статью про WITH и обнаружил что он поддерживает вставку PL/SQL функций и процедур, да, раньше такого не знал. Эта возможность появилась с версии Oracle 12c.

Пример WITH с функцией

WITH 
  FUNCTION with_function(p_id IN NUMBER) RETURN NUMBER IS
  BEGIN
    RETURN p_id;
  END;
SELECT with_function(1)
  FROM dual
;

Пример WITH с процедурой

WITH
  PROCEDURE with_procedure(p_id IN NUMBER) IS
  BEGIN
    DBMS_OUTPUT.put_line('p_id=' || p_id);
  END;
  FUNCTION with_function(p_id IN NUMBER) RETURN NUMBER IS
  BEGIN
    with_procedure(p_id);
    RETURN p_id;
  END;
SELECT with_function(1)
  FROM dual
;

См. пример на dbfiddle.

Ссылки:
[1] Oracle WITH operator
[2] Write Less with More – Part 8 (PL/SQL in the WITH Clause)
[3] WITH Clause Enhancements in Oracle Database 12c Release 1 (12.1)
[4] WITH Clause : Subquery Factoring in Oracle

Комментариев нет:

Отправить комментарий

Последнее...

CURL вместо Postman / Swagger