VARRAY als Parameter bei SP aufruf ORACLE

cullmann

Mitglied
Servus alle zusammen,

ich hab ne SP geschriebnen die als Parameter unter anderem einen Varray of number erwartet, wenn ich dem dann aber den varray lieferre bekomme ich immer die Fehlermeldung das die Argumente vom Typ oder anzahl nicht stimmten.

Code:
declare
Type LehrArray_typ is VARRAY(3) of number;
v_array LehrArray_typ := LehrArray_typ(307, 308, 302);
v_fachname Varchar2(30) := 'Sparchwissenschaften';
begin
    package_fach.insert_Fach_via_PHP(v_fachname, v_array);
end;
/

meine SP sieht wie folgt aus:
Code:
Procedure Insert_Fach_via_PHP (  iFachName_in IN Varchar2, 
                                   iLehrvArray_in IN OUT NOCOPY LehrArray_typ) 
  is
  v_FachID number;
  begin
    Insert into Fach (FachID, FachName, SA_Lehrvera)
    Values(Fachseq.nextval, iFachName_in, null)
    Returning 
        FachID 
    INTO
        v_FachID;
        
    FORALL i in iLehrVARRAY_in.First .. iLehrVARRAY_in.Last
      Update Lehrveranstaltungen 
      set FachID = v_FachID
      where LehrID = iLehrVArray_in(i)
      and Stand_alone = 0;
  end;

Kann man keine Varrays als Parameter über geben, oder was mache ich falsch?

cullmann
 
Ok, wenn man einen Datentyp in der DB angelegt geht der aufruf wunderbar...


create or replace Type list_of_L AS VArray(30) of number;

wenn ich dann auf diesen Datentyp zugreife kann ich meine SP mit dem entsprechenden Parameter ansprechen.


Verstehe zwar net warum das nicht vorher ohen "globalen" datentyp funktioniert hat, aber jetzt läufsts.....


cullmann
 
Zurück