5
Ich habe eine PLSQL Oracle-Funktion, die ein Array akzeptiert:Pass select-Anweisung zu Oracle PLSQL
CREATE OR REPLACE FUNCTION CM.give_me_an_arrays (p_array IN num_array)
RETURN VARCHAR2
IS
x VARCHAR2 (512);
BEGIN
x := '';
FOR i IN 1 .. p_array.COUNT
LOOP
DBMS_OUTPUT.put_line (p_array (i));
END LOOP;
RETURN x;
END;
/
Ich möchte, dies zu tun:
select CM.give_me_an_arrays(select COM.COM_ID
from CM.XLP_SE_COMPONENT com
where rownum < 10)
from dual
Irgendwelche Ideen? Vielen Dank im Voraus.
Gibt es einen Grund, dass die Funktion ein Array akzeptieren muss? Könnte es stattdessen einen Cursor akzeptieren? Dies wäre in der Regel sinnvoller, wenn Sie das Ergebnis einer SELECT-Anweisung übergeben möchten. Wenn Sie die Ergebnisse einer Abfrage verwenden, die 10 Zeilen zurückgibt und ein einzelnes Gesamtergebnis erzeugt, sind Sie sicher, dass Sie stattdessen keine benutzerdefinierte Aggregatfunktion schreiben möchten? –