dba:oracle12c_plsql_in_sql
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
dba:oracle12c_plsql_in_sql [2014/11/22 18:05] – angelegt gpipperr | dba:oracle12c_plsql_in_sql [2014/11/22 18:37] (aktuell) – [ORA-32034: unsupported use of WITH clause] gpipperr | ||
---|---|---|---|
Zeile 22: | Zeile 22: | ||
+ | ===ORA-32034: | ||
+ | |||
+ | Um aber das PL/SQL wiederum in einer geschachtelten SQL Abfrage zu verwenden muss der Hint **WITH_PLSQL** verwendet werden: | ||
+ | <code sql> | ||
+ | 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** | ||
+ | |||
+ | <code sql> | ||
+ | select /*+ WITH_PLSQL */ * from ( | ||
+ | with function iconvert(p_id number) | ||
+ | return number | ||
+ | is | ||
+ | begin | ||
+ | return p_id*2; | ||
+ | end; | ||
+ | select iconvert(2) from dual | ||
+ | ) | ||
+ | / | ||
+ | | ||
+ | ------------ | ||
+ | 4 | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | === Einsatz Möglichkeiten === | ||
+ | |||
+ | Da das PL/SQL auch in einer View verwendet werden kann und " | ||
+ | |||
+ | |||
+ | |||
+ | ==== Quellen ==== | ||
+ | |||
+ | * DOAG 2014 - Konferenzvortrag | ||
dba/oracle12c_plsql_in_sql.txt · Zuletzt geändert: 2014/11/22 18:37 von gpipperr