Erreur ORA-01036

Résolu
tyrion78 Messages postés 8 Date d'inscription mardi 20 mars 2007 Statut Membre Dernière intervention 2 décembre 2008 - 27 nov. 2008 à 20:50
dvoraky Messages postés 744 Date d'inscription dimanche 1 avril 2007 Statut Membre Derniè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:

4 réponses

tyrion78 Messages postés 8 Date d'inscription mardi 20 mars 2007 Statut Membre Dernière intervention 2 décembre 2008
2 déc. 2008 à 14:01
C'est bon j'ai trouvé la solution, merci à celui qui m'a aidé.
3
dvoraky Messages postés 744 Date d'inscription dimanche 1 avril 2007 Statut Membre Dernière intervention 9 mai 2010 8
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...
0
tyrion78 Messages postés 8 Date d'inscription mardi 20 mars 2007 Statut Membre Dernière intervention 2 décembre 2008
28 nov. 2008 à 19:46
Salut,

J'ai testé ce que tu as proposé mais j'ai toujours le même problème.
Je comprends vraiment pas pourquoi j'ai cette erreur ....

Merci pour le coup de main.
0
dvoraky Messages postés 744 Date d'inscription dimanche 1 avril 2007 Statut Membre Dernière intervention 9 mai 2010 8
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...
0
Rejoignez-nous