Bonjour,

je débute en PL/SQL et je galère sur une fonction qui parait toute simple
je souhaite concaténer les champs T_LIBELLE des lignes correspondant à un même identifiant
j'ai fait cette fonction sous VBA et pas de problème ;

mais j'obtiens l'erreur ci-dessous :
12/2 PLS-00103: Symbole "END" rencontré à la place d'un des symboles
suivants :
. ( * @ % & = - + ; < / > in mod not rem an exponent (**)
<> or != or ~= >= <= <> and or like between is null is not ||
Symbole ";" a été substitué à "END" pour continuer.
je ne comprends pas car j'utilise cette syntaxe dans une procédure stockée PLL/SQL et çà fonctionne
d'avance merci pour votre aide

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 function concatenat(id in number) return varchar2
is
	result VARCHAR2(255);
	CURSOR c IS SELECT EFFORT.TABINDICATION_LIBELLE.T_LIBELLE FROM EFFORT.TABINDICATION_EFFORT,EFFORT.TABINDICATION_LIBELLE WHERE EFFORT.TABINDICATION_EFFORT.IE_N_INDICATIONS(+)=EFFORT.TABINDICATION_LIBELLE.N_CODE AND EFFORT.TABINDICATION_EFFORT.EFFORT_ID=id;
 
begin
   FOR enr IN c
	LOOP
		result = result || enr.T_LIBELLE		
		--DBMS_OUTPUT.PUT_LINE (result);
	END LOOP;
	return result;
end;
/