Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1335 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

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

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°652705
manuhard
Le bois ne rend pas les coups
Posté le 24-02-2004 à 10:08:29  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.

mood
Publicité
Posté le 24-02-2004 à 10:08:29  profilanswer
 

n°652724
tomlameche
Et pourquoi pas ?
Posté le 24-02-2004 à 10:30:59  profilanswer
 

Lz plus simple, tu cré ta table, tu cré ta procédure, tu compile ta procédure, tu supprime la table et c'est fini. Pas besoin de faire du dinamic.


---------------
Gérez votre collection de BD en ligne ! ---- Electro-jazzy song ---- Dazie Mae - jazzy/bluesy/cabaret et plus si affinité
n°652786
manuhard
Le bois ne rend pas les coups
Posté le 24-02-2004 à 11:00:33  profilanswer
 

Et si je veux faire du dynamique ?  :)

n°654498
tomlameche
Et pourquoi pas ?
Posté le 25-02-2004 à 13:53:44  profilanswer
 

manuhard a écrit :

Et si je veux faire du dynamique ?  :)  


bon ben fais voir ton code pour voir ce qui va pas.


---------------
Gérez votre collection de BD en ligne ! ---- Electro-jazzy song ---- Dazie Mae - jazzy/bluesy/cabaret et plus si affinité
n°654530
manuhard
Le bois ne rend pas les coups
Posté le 25-02-2004 à 14:15:32  profilanswer
 

Voilà :
 
OPEN MONCURSEUR_CUR('SELECT monChamp FROM maTable');
 
 
Le curseur est défini comme suit :
 
SELECT CHAMPS
FROM   TABLES
WHERE  ...
AND    monChamp NOT IN (paramTableTemporaire);


Message édité par manuhard le 25-02-2004 à 14:17:22
n°654539
tomlameche
Et pourquoi pas ?
Posté le 25-02-2004 à 14:23:23  profilanswer
 

manuhard a écrit :

Voilà :
 
OPEN MONCURSEUR_CUR('SELECT monChamp FROM maTable');
 
 
Le curseur est défini comme suit :
 
SELECT CHAMPS
FROM   TABLES
WHERE  ...
AND    monChamp NOT IN (paramTableTemporaire);
 


Ca, ca n'a aucun sens : après le not in, il attend une liste de valeur. Ici tu lui a mis une variable paramTableTemporaire, la requete qui va donc être executé sera
SELECT CHAMPS
FROM   TABLES
WHERE  ...
AND    monChamp NOT IN ('SELECT monChamp FROM maTable');c'est à dire que ton paramètre reste juste une chaine de caractère et ne peux pas être interpreté comme une requete SQL.( et non pas
SELECT CHAMPS
FROM   TABLES
WHERE  ...
AND    monChamp NOT IN SELECT monChamp FROM maTable;
comme tu le souhaite. )
En PL/SQL tu ne peux pas faire des requête dinamiquement de cettte manière. La seule méthode possbile est d'utiliser le package dbms_sql .


Message édité par tomlameche le 25-02-2004 à 14:24:50

---------------
Gérez votre collection de BD en ligne ! ---- Electro-jazzy song ---- Dazie Mae - jazzy/bluesy/cabaret et plus si affinité
n°654568
alalex
Posté le 25-02-2004 à 14:40:59  profilanswer
 

Regarde avec EXECUTE_IMMEDIATE je crois que tu peux le faire, mais je me souviens plus si j'avais réussi, je n'ai pas Oracle ici pour essayer


Message édité par alalex le 25-02-2004 à 14:41:08

---------------
-= Team RC5-72 =-  -= Team Dolphin Project =-

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

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

 

Sujets relatifs
Comment sauvegarder une grosse table ?Modifier un javascript existant qui utilise des frames
Problèmes de passage de pointeur en paramètreproblem de donnees sous oracle
[Oracle 8i] Liaison avec Access : Perte des décimales[Oracle 9.2] pb de select from dual sur oracle 9.2
Passage de pointeurs en paramètre erronés !problème de table
Peut on appeller un .exe creer en VB avec un parametre ?creer une table (temporaire) en VBA à partir des données d'une requete
Plus de sujets relatifs à : [PLSQL Oracle] : curseur avec table n'existant pas encore en paramètre


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR