Bonjour,

Après avoir utilisé les curseur paramétrés et les REF CURSOR qui permettent de coder la requête sous forme de chaîne de caractères dans la clause OPEN, j'ai tenté de passer une requête en paramètre sous forme de chaîne de caractère.

Il m'a semblé que c'est ce à quoi servent (entre autre) les REF CURSOR (mais me je trompe peut-être)

Je ne suis pas arrivée à marier les 2 syntaxes.

Voilà la requête que j'injecte :

'Select T_CLIENT.CLI_ID , T_TITRE.TIT_LIBELLE , T_TITRE.TIT_CODE from T_TITRE , T_CLIENT where T_TITRE.TIT_CODE = T_CLIENT.TIT_CODE and T_CLIENT.CLI_ID <= 20'

j'ai essayé ca (et toutes sortes de formules que je vous épargne).

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
ItemTitre  sys_refcursor (requete) ;
ou 
ItemTitre  sys_refcursor  (requete in char(160)) ;
ou)
ItemTitre  sys_refcursor  (requete in char) ;
 
...
 
 OPEN ItemTitre for ('&requete')  ;
ou
 OPEN ItemTitre for (&requete)  ;
et je rencontre ce genre d'erreur

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
17
 
 
Rapport d'erreur :
ORA-06550: Ligne 12, colonne 22 :
PLS-00103: Symbole "SELECT" rencontré à la place d'un des symboles suivants :
 
ou 
 
ORA-06550: Ligne 4, colonne 39 :
PLS-00103: Symbole "CHAR" rencontré à la place d'un des symboles suivants :
(
 
ou 
 
Rapport d'erreur :
ORA-06550: Ligne 4, colonne 12 :
PLS-00566: le nom type "SYS_REFCURSOR" ne peut être calligraphique
Est-ce que je fais fausse route en voulant injecter une requête en paramètre ?
N'est-ce pas pourtant le genre de problème que l'on peut être amené résoudre ?

Merci de vos avis éclairés.