Ich führe eine Abfrage, wo ich die GL-Spalte in der GROUP BY-Klausel nicht enthalten soll, weil ich nicht für jede Variation eine andere Zeile anzeigen möchte des GL-Feldes. Aber ich muss das Feld in der nachfolgenden Verarbeitung auswerten und es mit einer Liste dynamisch generierter GL-Nummern vergleichen. Der beste Weg, dies zu tun, ist mit einer Funktion und ich versuche ListAgg(). Erstens, gibt es eine bessere Funktion, um den GL von jeder Zeile mit einer Liste zu vergleichen? Außerdem kann ich die Ergebnisse unten mit SQL Developer abrufen, aber nicht, wenn ich versuche, es auf einer Webseite auszugeben, auf der Oracle einen ORA-01002-Fehler zurückgibt. Wir verwenden in beiden Fällen 12c. Unten ist die Abfrage und die Ausgabe. Ohne ListAgg() muss ich die GL-Spalte in SELECT und GROUP BY einfügen, und es wird in unerwünschter Weise eine separate Zeile für jeden GL ausgegeben.ListAgg() ORA-01002: Fetch außerhalb der Sequenz
SELECT h.h_spa_id as spa_id,
h.submit_dt,
h.oa_ap_date,
ListAgg(gl,',') within group (order by gl) "mygl"
WHERE h.next_apprv= 'approverID'
and h.table1_id = d.table2_id
and h.table1_id = table3_id
group by h.h_spa_id,h.submit_dt,h.oa_ap_date
order by h.h_spa_id
H_SPA_ID SUBMIT_DT OA_AP_DATE MYGL
1627005 1/25/2008 10:11:53 AM 1/25/2008 11:15:56 AM 52287,52287,52287,52287,52287,52287,52287,52287,52287,52287,52385,52385,52385,52385,52385,52385,52385,52385,52385,52385,52385,52385,52385,52385,52385
Wo ist Ihre FROM-Klausel? –