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 :
Les variables VAR_ID et VAR_NAME sont déclarées comme varialbles OUT
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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;
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 :
j'ai une erreur de compilation
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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;
Partager