GOOGLE ADS

Sonntag, 1. Mai 2022

With-Klausel funktioniert nicht mit Union

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

Warum werden SCHED_FIFO-Threads derselben physischen CPU zugewiesen, obwohl CPUs im Leerlauf verfügbar sind?

Lösung des Problems Wenn ich das richtig verstehe, versuchen Sie, SCHED_FIFO mit aktiviertem Hyperthreading ("HT") zu verwenden, ...