dba:oracle12c_plsql_in_sql
Dies ist eine alte Version des Dokuments!
Oracle 12c Datenbank - PL/SQL in SQL Statements verwenden
Ab 12c kann nun in einem SQL Statement direkt PL/SQL verwendet werden.
Ein ein erstes Beispiel:
WITH FUNCTION iconvert(p_id NUMBER) RETURN NUMBER IS BEGIN RETURN p_id*2; END; SELECT iconvert(2) FROM dual / ICONVERT(2) ----------- 4
ORA-32034: unsupported use of WITH clause
Um aber das PL/SQL wiederum in einer geschachtelten SQL Abfrage zu verwenden muss der Hint WITH_PLSQL verwendet werden:
SELECT * FROM ( WITH FUNCTION iconvert(p_id NUMBER) RETURN NUMBER IS BEGIN RETURN p_id*2; END; SELECT iconvert(2) FROM dual ) / ERROR at line 2: ORA-32034: unsupported USE OF WITH clause
Lösung, Hint WITH_PLSQL:
SELECT /*+ WITH_PLSQL */ * FROM ( WITH FUNCTION iconvert(p_id NUMBER) RETURN NUMBER IS BEGIN RETURN p_id*2; END; SELECT iconvert(2) FROM dual ) / ICONVERT(2) ------------ 4
dba/oracle12c_plsql_in_sql.1416676223.txt.gz · Zuletzt geändert: 2014/11/22 18:10 von gpipperr