Erreur SQL : ORA-01008: Toutes les variables ne sont pas liées [RESOLU] - Java - Programmation
Marsh Posté le 05-12-2006 à 16:07:49
5 points d'interrogation, 4 variables assignées, c'est pas ça le problème ?
D'ailleurs c'est exactement ce que veut dire le message à priori.
Marsh Posté le 05-12-2006 à 18:28:18
Je ne savais pas que le 1er était une variable, mais soit ... même quand j'enleve le "?=" j'ai toujours la même erreur.
Marsh Posté le 05-12-2006 à 20:27:46
Juste pour faire avancer le truc :
1. Ta procédure est-elle dans un paquetage ? Si oui, la spécification de ta procédure possède-t-elle bien 4 paramètres ?
2. Les paramètres sont-ils non nuls ? (Je ne suis pas sûr que ça ait un impact)
Marsh Posté le 05-12-2006 à 20:30:31
Ma procédure n'est dans aucun paquetage.
Aucun paramètre n'est nul (du moins en la testant, je les ai toujours rempli), je testerai plus tard si ca change quelque chose, même si je ne pense pas car c'est tout simplement une chaine vide dans ce cas.
Marsh Posté le 05-12-2006 à 23:56:43
Le premier paramètre est un paramètre de sortie.
proc.registerOutParameter(1,Types.VARCHAR);
proc.setString(2,TF);
proc.setString(3,CS);
proc.setString(4,DS);
proc.setString(5,VO);
System.out.println(proc.getString(1));
Marsh Posté le 06-12-2006 à 13:16:33
Si j'ai bien compris, ca me donne ca :
CallableStatement proc = cnx.prepareCall("{? = call ajout_explr(?,?,?,?) }" );
proc.registerOutParameter(1,Types.VARCHAR);
proc.setString(2,TF);
proc.setString(3,CS);
proc.setString(4,DS);
proc.setString(5,VO);
System.out.println(proc.getString(1));
proc.execute();
Mais le System.out.println(proc.getString(1)); doit sortir quoi ?
Il me fait une erreur :
Index de colonne non valide.
Marsh Posté le 06-12-2006 à 14:43:32
Problème résolu.
Il ne falait pas que SQL!Plus soit lancé en même temps que mon programme. Erreur toute bête.
Merci pour votre aide.
Marsh Posté le 06-12-2006 à 14:55:39
Si SQL+ tourne en même temps que ton prog, ça plante ?
Depuis quand Oracle fait des produits mono-session-mono-poste-mono-utilisateur
Marsh Posté le 06-12-2006 à 15:34:18
est-ce que tu es sûr que ton call retourne un seul résultat ? sinon, faut passer par un executeQuery, et récupérer un resultSet sur le quel itérer.
ton code ne doit marcher que si tu as un seul résultat.
Marsh Posté le 06-12-2006 à 17:45:27
En fait les requetes de base marche si SQL+ est lancé, mais pas les appels de procédure.
Mon call ne retourne rien, mais j'avais tout essayé pour voir si ca marchais, j'ai donc un call tout simple maintenant avec mes 4 paramètres.
Marsh Posté le 05-12-2006 à 15:27:35
J'ai un gros problème urgent consernant l'execution d'une procédure depuis SQL.
J'ai ouvert ma connexion, et j'ai donc le code suivant pour executer ma procédure :
L'erreur SQL qui revient est donc : "ORA-01008: Toutes les variables ne sont pas liées".
La procédure a été testé sur oracle et marche très bien :
Merci d'avance pour vos réponses, je suis vraiment bloqué et c'est assez chiant
Message édité par Mric78 le 06-12-2006 à 14:43:49