Benutzer-Werkzeuge

Webseiten-Werkzeuge


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
Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
dba/oracle12c_plsql_in_sql.1416676223.txt.gz · Zuletzt geändert: 2014/11/22 18:10 von gpipperr