ich habe Probleme beim füllen von Arrays in PL-Funktionen über dynamisch erzeugte Befehle:
was nicht geklappt hat: EXECUTE 'notizid:=(SELECT ARRAY(SELECT…||…||
in der Doku war zu lesen man solle FOR-IN-EXECUTE verweden: funktioniert das nur mit dem Datentyp rec? Auf diesem Weg ein Varchar-Array zu füllen ist mit nicht gelungen
nächste Frage: gibt es einen Befehl der die Inhalte zweier Arrays miteinander vergleicht? Oder muss man das über 2 geschaltelte Schleifen machen?
Hallo Andreas,
vielen Dank für Deine schnelle Antwort. Meinem Problem ist damit nur bedingt Abhilfe geschaffen,
bisher erhielt ich immer Ergebnisse in Spalten statt in Zeilenform. Diese konnte ich dann innerhalb der Funktion mit array verarbeiten bzw. bzw mit RETURN NEXT rec ausgeben. Meine Frage zu dem Vergleich der Array-Inhalte zielte auch auf diese Spaltenarrays ab.
Gib es eine Möglichkeit auch Spaltenarrays mittels EXECUTE zu füllen?
Hab eine Lösung gefunden: Es funktioniert wenn man in eine Record-Variable einliest und in der Schleife die Ergebnisse verarbeitet:
…
DECLARE
a RECORD;
…
BEGIN
FOR a IN EXECUTE ‘select kunde_id from tbl_kunde’ LOOP
– Weiterverarbeitung von a.kunde_id
– ggf Ausgabe: RETURN NEXT a.kunde_id
END LOOP;
…
Dennoch, vielen Dank für die Unterstützung!
Gruß, Gerrit