Hallo, weiss jemand wie ich eine komma separierte Liste erstelle im Prozeduraufruf erstelle wobeu nur 1 Parameter in der Prozedur definiert ist.. Beispielsweise:
Habe eine Procedur mit Parameter:
CREATE PROCEDURE gib_name (name varchar2 )
IS
BEGIN
.............
............
END
Beim Aufruf der Prozedur möchte ich mehrere von den Parametern angeben, also kommasepariert,welches dan zu den namen bestimmte IDs in eine temporäre tabelle reinschreibt, beispielswise:
EXECUTE gib_name ('torsten', 'matthias', 'tobi' ) /*<----so ist es aber nicht möglich*/
Wie würde das gehen wenn ich in dem Aufruf der Prozedur dann mehrere Argumente reinschreibe, die aber vom selben Typ des parameters sind?.
Bin euch sehr dankbar für Ideen!.
Announcement
Collapse
No announcement yet.
Dynamische Anzahl an Werten für Parameter
Collapse
X
-
Dynamische Anzahl an Werten für Parameter
-
Korrekt, würde auch eine Collection verwenden. Alternativ übergeben wir komplexe Parameterkonstruktionen auch via einem XML File, je nach Fall kann dies eine gute Lösung sein
Gruss
Leave a comment:
-
Vielleicht nicht ganz, was Du suchst, denn echt variable Parameterzahlen sind m.E. nicht möglich. Man kann dieselbe Prozedur mit unterschiedlichen Parametern implementieren (überladen) oder einen Listentyp als Parameter wählen:
Code:CREATE OR REPLACE PROCEDURE gib_name (NamList sys.odciVarchar2List) IS BEGIN FOR i IN NamList.First .. NamList.Last LOOP dbms_output.put_line(' Namlist('||i||')='||NamList(i)); END LOOP; END; SHOW ERRORS SET SERVEROUTPUT ON SIZE 900000; EXEC gib_name(sys.odciVarchar2List('torsten', 'matthias', 'tobi')); Namlist(1)=torsten Namlist(2)=matthias Namlist(3)=tobi
Leave a comment:
Leave a comment: