Mein Abfrageergebnis ist eine Vereinigung mehrerer Abfragen. Ich sehe den folgenden Fehler, wenn ich die WITH-Klausel innerhalb einer Union verwende. Irgendwelche Ideen warum?
select column1 from TABLE_A
union
with abcd as (select * from TABLE_B)
select column2 from TABLE_A A, abcd
where abcd.m_reference = A.m_reference
ORA-32034: Nicht unterstützte Verwendung der WITH-Klausel
32034. 00000 – „Nicht unterstützte Verwendung der WITH-Klausel"
*Ursache: Falsche Verwendung der WITH-Klausel aus einem der folgenden zwei Gründe:
1. Verschachtelung der WITH-Klausel innerhalb der WITH-Klausel noch nicht unterstützt
2. For Bei einer Mengenabfrage kann die WITH-Klausel nicht für eine Verzweigung angegeben werden.
3. Die WITH-Klausel kann nicht in Klammern angegeben werden.
*Aktion: Korrigieren Sie die Abfrage und versuchen Sie es erneut
Lösung des Problems
Kapseln Sie Ihre WITH-Anweisung in einem Dummy-Select.
select column1 from TABLE_A
union
select * from (
with abcd as (select * from TABLE_B)
select column2 from TABLE_A A, abcd
where abcd.m_reference = A.m_reference
)
Keine Kommentare:
Kommentar veröffentlichen