Qualcuno può dirmi se è possibile creare una procedura memorizzata in oracle che accetta array come parametro di input e come?come creare una stored procedure in oracle che accetta array di parametri
8
A
risposta
12
Sì. Oracle li chiama collezioni e c'è una varietà di collezioni che puoi usare.
Un semplice esempio di array che utilizza un VARRAY.
DECLARE
TYPE Str_Array IS VARRAY(4) OF VARCHAR2(50);
v_array Str_Array;
PROCEDURE PROCESS_ARRAY(v_str_array Str_Array)
AS
BEGIN
FOR i IN v_str_array.first .. v_str_array.last LOOP
DBMS_OUTPUT.PUT_LINE('Hello '||v_str_array(i));
END LOOP;
END;
BEGIN
v_array := Str_Array('John','Paul','Ringo','George');
PROCESS_ARRAY(v_array);
-- can also pass unbound Str_Array
PROCESS_ARRAY(Str_Array('John','Paul','Ringo','George'));
END;
+0
molto eccellente. Ho aggiunto un secondo esempio che mostra Str_Array (...) come parametro. –
1
Se non sbaglio, c'è un tipo nativo chiamato TABLE che fondamentalmente è un array. Ma l'ultima volta che l'ho usato è stato il 2001, quindi forse ci sono i tipi più potenti al giorno d'oggi.
Scegli questa http://www.developer.com/db/article.php/3379271
Che tipo di clientela avete? Vuoi chiamare questa stored procedure da un'altra procedura pl/sql o da C# o Java o ...? – tuinstoel