Function - déclaration variable locales
Bonjour, j'ai un petit soucis de déclaration de mes variables locales. Quelqu'un peut-il m'expliquer comment ça marche?
Merci d'avance
Voici une fonction :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| CREATE OR REPLACE FUNCTION get_data (
VAR_ID OUT INTEGER,
VAR_NAME OUT VARCHAR2
)
RETURN AF_obj_table_Arbo AS
v_tab AF_obj_table_Arbo := AF_obj_table_Arbo();
BEGIN
FOR cur_cdl IN (SELECT ID, NAME FROM SOC
WHERE SOC_DT_SUP IS NULL AND SOC_REGROUP = 15)
LOOP
VAR_ID := cur_cdl.ID;
VAR_NAME := cur_cdl.NAME;
END LOOP;
RETURN v_tab;
END; |
Les variables VAR_ID et VAR_NAME sont déclarées comme varialbles OUT
Quand je compile, ça marche
Mais en fait j'aimerai que ces deux varialbles soient locales à la fonction et non en paramètre
J'ai fait ça :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| CREATE OR REPLACE FUNCTION get_data ()
RETURN AF_obj_table_Arbo AS
v_tab AF_obj_table_Arbo := AF_obj_table_Arbo();
DECLARE
VAR_ID INTEGER;
VAR_NAME VARCHAR2 (100);
BEGIN
FOR cur_cdl IN (SELECT ID, NAME FROM SOC
WHERE SOC_DT_SUP IS NULL AND SOC_REGROUP = 15)
LOOP
VAR_ID := cur_cdl.ID;
VAR_NAME := cur_cdl.NAME;
END LOOP;
RETURN v_tab;
END; |
j'ai une erreur de compilation