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