Reputation: 15
I want to pass an array in a stored functionbut it doesn't want to compile and I don't know what I did wrong.
My assiociative array :
TYPE etages IS TABLE OF NUMBER
INDEX BY pls_integer;
etage etages;
ID number;
My Function header :
FUNCTION SHOWRES
(P_OBJET IN NUMBER
,P_DATE_DEBUT IN DATE
,P_DATE_FIN IN DATE
,PERIODE IN VARCHAR2
,P_LIBELLE IN VARCHAR2
,P_ENTETE_CAL IN VARCHAR2
,P_DETAIL IN VARCHAR2
,P_USERID IN VARCHAR2
,P_USER IN VARCHAR2
,P_SOCIETE IN VARCHAR2
,P_COLSPAN IN VARCHAR2
,P_INTERVAL_BASE IN NUMBER
,P_INTERVAL IN OUT NUMBER
,p_reservations IN etages
) RETURN BOOLEAN;
Upvotes: 1
Views: 173
Reputation: 18665
Here is a working example:
DECLARE
TYPE etagestyp IS TABLE OF NUMBER INDEX BY pls_integer;
l_etage etagestyp;
FUNCTION etagecount (p_etages etagestyp) RETURN NUMBER
IS
BEGIN
RETURN p_etages.COUNT;
END;
BEGIN
l_etage(1) := 100;
l_etage(2) := 200;
dbms_output.put_line(etagecount(l_etage));
END;
/
2
PL/SQL procedure successfully completed.
It's impossible to know what is wrong in your code but this example could guide you in the right direction.
Upvotes: 2