tyrion78
Messages postés8Date d'inscriptionmardi 20 mars 2007StatutMembreDernière intervention 2 décembre 2008
-
27 nov. 2008 à 20:50
dvoraky
Messages postés744Date d'inscriptiondimanche 1 avril 2007StatutMembreDernière intervention 9 mai 2010
-
2 déc. 2008 à 14:08
Bien le bonsoir à tous.
Voila donc mon problème : " ORA-01036: numéro/nom de variable interdit "
J'ai regardé à droite et à gauche pour essayer de voir si des personnes avaient déjà eu ce problème et les solutions envisageables mais rien n'a corrigé mon problème.
J'ai essayé de trouver une solution tout seul, pas réussi non plus . ( J'ai juste réussi à m'arracher les cheveux )
Donc la dernière solution est de demander votre aide.
Je dois réaliser un programme liant JDBC (Eclipse) et Oracle ( DataBase Express Edition )
Le problème survient lorsque j'appelle une fonction avec paramètre qui me renvoie un entier. Il m'affiche l'erreur ora 01036
Code JAVA //La connexion avec la base est déjà établie
// test represente l'objet de la classe qui gere la connexion, et connection est un attribut privée de la classe qui contient la connexion
CallableStatement cst = test.connection.prepareCall("?=call AFFICHAGE(?)");
cst.registerOutParameter(1,java?sql.Types.NUMERIC);
cst.setString(2,"DEPP");
if(cst.execute())
{
Systeme.out.println(" ..." );
}
// Ce code est éxécuté dans un bloc try, catch.
Fonction SQL
CREATE OR REPLACE FUNCTION AFFICHAGE(nomindividu VARACHAR2)
RETURN NUMBER IS NbFilm NUMBER;
BEGIN
SELECT COUNT(*) INTO NbFilm
FROM mes Tables
WHERE jointures
AND NOMINDIVIDU =nomindividu;
return NbFilm;
END;
/
Donc voila je comprends pas le probleme. Oracle dis qu'il n'y a aucune erreur sur la fonction donc je dois avoir un probleme au niveau de Callable ...
Le pire, une requete toute bete avec result set etc ... faite dans JDBC fonctionne correctement
Voila j'en appel à vos lumieres ^^
Merci d'avance
A voir également:
Sous-requête ramenant un enregistrement de plus d'une ligne
Ora-01427: sous-requête ramenant un enregistrement de plus d'une ligne - Meilleures réponses
dvoraky
Messages postés744Date d'inscriptiondimanche 1 avril 2007StatutMembreDernière intervention 9 mai 20108 28 nov. 2008 à 09:12
Salut,
hum, je parierai pour des quotes.
Dans ton initialisation de ta variable que tu passes en paramètre de ta procédures AFFICHAGE, tu passes DEPP en paramètre,
essai donc de passer plutôt 'DEPP'
cst.setString(2,"'DEPP'");
<hr width="100%" size="2" />
C'est après des heures de codage que j'ai compris pourquoi les créateurs de Java ont choisi une tasse de café comme logo...
dvoraky
Messages postés744Date d'inscriptiondimanche 1 avril 2007StatutMembreDernière intervention 9 mai 20108 2 déc. 2008 à 14:08
Salut,
Content que tu ais trouvé ton erreur, peut être pourrais tu nous faire partager ton erreur de manière à ce que si d'autres personnes ont le même problème que toi elles puissent résoudre leur problème en lisant ce post...
Non?
<hr width="100%" size="2" />
C'est après des heures de codage que j'ai compris pourquoi les créateurs de Java ont choisi une tasse de café comme logo...