Forums Rue-Montgallet.com
Rue-Montgallet.comRue-Hardware.comRue-Occasion.comRue-DVD.comRue-Jeuxvideo.comRue-AudioVideo.comRue-Telephone.comForums
S'inscrire | S'identifier |
| Recherche avancée | Aide
 
 

1 utilisateur anonyme et 9 utilisateurs inconnus

 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet :

[PLSQL Oracle] : curseur avec table n'existant pas encore en paramètre

 
n°6829
manuhard
Profil : Membre
Posté le 24-02-2004 à 10:08:26  profilanswer
 

J'ai un curseur, auquel je veux passer un paramètre, défini en VARCHAR2 (mon but est de construire ma chaîne SQL en dynamique)  
 
J'ai en effet une table temporaire qui n'existe pas encore, donc je ne peux la déclarer dans le curseur.  
Je la crée avant le traitement, et la détruit après le traitement.
 
La partie de la requête concernée est :  
AND monChamp NOT IN (paramTableTemporaire);  
 
Quand j'ouvre mon curseur :  
OPEN MonCurseur_CUR('SELECT monChamp FROM maTable');  
 
 
J'ai l'erreur Oracle ORA-01722 : nombre non valide.  
 
Le problème vient des cotes, si j'exécute la requête SQL et que j'enlève les cotes entre le SELECT et maTable, il n'y a pas d'erreur.  
 
Comment faire ?
 
Merci d'avance.

n°6833
ollone
Part of the 'One brothers
Profil : Vieux de la vieille
Posté le 24-02-2004 à 11:34:20  profilanswer
 

Bah tu retires les cotes... et ca marche... non :??:


---------------
C'est naturel que les filles soient plus belles, et les garçons plus cons ^^ [un peu bonobo sur les bords]
n°6873
mkl99
Profil : Jeune recrue
Posté le 26-02-2004 à 12:20:28  profilanswer
 

c normal que t'ai cette erreur
ta declaration de curseur est fausse
il faut faire comme ceci
 
declare  
 cursor toto is  
  select YYYY from table  
 where etc .....
resultat toto%rowtype;
begin
 open cursor toto;
 loop
     fetch toto into resultat;
     exit when resultat%notfound;
    -- ton traitement que tu veux faire
    --
    --
 end loop;
 
close toto;
end;
 
nb:
c une des methode pour derouler un curseur
ya d'autre methode comme for resultat in toto...
voila
a+


Aller à :
Ajouter une réponse