Salut,

j'essaie de construire une requête ave du sql dynamique et je m'apui sur les tutoriels de developpez.com
Voici mon code:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
declare
TYPE aVARCHAR IS TABLE OF VARCHAR(500);
o_Departement aVARCHAR;
o_IdDepartement aVARCHAR;
o_CodeDepartement aVARCHAR;
lc$requete varchar2(1000);
 
begin
   lc$requete:='SELECT id_departement, departement, code_departement   FROM departement WHERE dt_debut <= sysdate AND dt_fin > sysdate order by departement';
 
   EXECUTE IMMEDIATE lc$requete  BULK COLLECT into o_Departement, o_IdDepartement, o_CodeDepartement;
end;
j'ai alors le message suivant quand je veux compiler :

ORA-06550: Ligne 10, colonne 32 :
PLS-00103: Symbole "BULK" rencontré à la place d'un des symboles suivants :

. ( * @ % & = - + ; < / > at in mod not rem return returning
<an exponent (**)> <> or != or ~= >= <= <> and or like
between into using is null is not || is dangling
J'ai essayer d'autres choses comme :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
lc$requete:='SELECT id_departement, departement, code_departement FROM departement WHERE dt_debut <= sysdate AND dt_fin > sysdate	order by departement';
   OPEN Emp_cv for LC$Requete ;
iCount := iCount + 1;
o_RecordCount := Emp_cv%ROWCOUNT;
FETCH Emp_cv BULK COLLECT into o_Departement, o_IdDepartement, o_CodeDepartement;
CLOSE Emp_cv ;
La compile passe bien mais lors de l'executtion j'ai le message suivant :

ORA-06550: Ligne 2, colonne 0 :
PLS-00103: Symbole "end-of-file" rencontré à la place d'un des symboles suivants :

begin function package pragma procedure subtype type use
<an identifier> <a double-quoted delimited-identifier> cursor
form current
quelqu'un connait il mieux le sql dynamique que le tutoriel developpez.com

[Modération : Balises Quote et Code ajoutées par LeoAnderson]