IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Problème Oracle [ora-01036 illegal variable name/number]


Sujet :

ASP.NET

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Août 2007
    Messages : 12
    Points : 11
    Points
    11
    Par défaut Problème Oracle [ora-01036 illegal variable name/number]
    Bonjour,

    J'effectue une requête relativement simple sur une base de données Oracle. J'obtiens l'erreur : ora-01036 illegal variable name/number mais je n'arrive pas à comprendre pourquoi. Pouvez vous m'aider ?

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
        String s;
        OracleConnection strConn;
        String strConnection;
        OracleCommand oracmd;
        strConnection = ConfigurationManager.ConnectionStrings["mabase"].ToString();
            strConn = new OracleConnection(strConnection);
    try
            {
                strConn.Open();
                oracmd = strConn.CreateCommand();
                oracmd.Connection = strConn;
                oracmd.CommandType = CommandType.Text;
                oracmd.CommandText = "select count(*) from SERVICE";
                s=oracmd.ExecuteScalar().ToString();            
                strConn.Close();
            }
            catch (Exception ex)
            {
                s=ex.Message;
            }
    Merci

  2. #2
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Points : 8 734
    Points
    8 734
    Par défaut
    A mon avis t'as pas le droit d'utiliser le mont TABLE dans ta réquête.
    C'est surement un mot clé réservé

  3. #3
    Membre à l'essai
    Inscrit en
    Août 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Août 2007
    Messages : 12
    Points : 11
    Points
    11
    Par défaut
    Excuse moi, en fait dans ma requete j'ai voulu mettre un exemple. Le nom de ma table, ça n'est pas TABLE mais SERVICE...
    (Le nom de la connectionstring est aussi différent de celui fourni dans l'exemple. Le reste du code est identique à celui de mon programme).

  4. #4
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Points : 8 734
    Points
    8 734
    Par défaut
    Bah c'est peut etre le mot service.
    Faut éviter ce genre de noms

  5. #5
    Membre éprouvé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2007
    Messages
    693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 693
    Points : 1 187
    Points
    1 187
    Par défaut
    Bonjour,

    Apparement, il y aurait des problèmes avec les providers pour Oracle !! J'ai vu ça à l'adresse suivante qui propose aussi une solution :
    http://www.devnewsgroups.net/group/m...opic14841.aspx

    Dans le même temps, j'ai déjà bossé sur des projets .NET utilisant des bases Oracle et je ne me rappelle pas de ce problème !!! Nous on utilisait des procédures stockées pour tout et tout marchait très bien !!!

    Voici un exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    OracleConnection pConnection=new OracleConnection(Machainedeconnexion);
    OracleCommand  selectCommand = new OracleCommand();
    selectCommand.CommandText = "MAPROCEDURESTOCKEE";
    selectCommand.CommandType = CommandType.StoredProcedure; 
    selectCommand.Connection = pConnection;
     
    selectCommand.Parameters.Add("p_RETOURCURSOR",OracleType.Cursor).Direction = ParameterDirection.Output;
     
    OracleParameter param = new OracleParameter("p_CRITERE",OracleType.VarChar); 
    param.Direction = ParameterDirection.Input;
    param.Value = "unevaleur";
    selectCommand.Parameters.Add(param);
    Bon courage

  6. #6
    Membre à l'essai
    Inscrit en
    Août 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Août 2007
    Messages : 12
    Points : 11
    Points
    11
    Par défaut
    lutecefalco, je ne pense pas que ce soit ça qui pose problème vu que j'ai essayé avec d'autres tables (qui ont d'autres noms moins ambigüe : manager, personnel, etc) et que j'avais la même erreur.

    ostenhard, merci beaucoup pour ta réponse, elle est très intéressante et je pense qu'elle va peut être solutionner mon problème. Je la teste demain !

    Ce qui est très bizarre c'est que si par exemple je fais un insert au lieu d'un select, ma requête fonctionne sans problèmes. Et quand je teste mon select directement sur ma base oracle (avec sqlplus) elle me renvoie un résultat !

    Merci à vous deux en tout cas !

  7. #7
    Membre éprouvé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2007
    Messages
    693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 693
    Points : 1 187
    Points
    1 187
    Par défaut
    Alors moi je penche pour un truc très "con" !!!
    J'y ai pensé mais je trouvais ça tellement bete que ...
    Enfin je ne suis pas sûr sûr mais cela vient je pense du count(*) !!!

    Essaye avec un nom de colonne un vraiment (pas dans un compte).

    Par exemple essaye cette requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT MACOLONNE FROM MATABLE WHERE ROWNUM = 1
    Et on verra bien !!!
    Si ça marche je serais tenter de dire de mettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT COUNT(*) AS COMPTE FROM MATABLE
    Je sais c'est bête mais en même temps c'est de l'informatique !!!

  8. #8
    Membre à l'essai
    Inscrit en
    Août 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Août 2007
    Messages : 12
    Points : 11
    Points
    11
    Par défaut
    Merci ostenhard.
    En fait c'était une erreur bête mais je n'ai pas donné les éléments permettant de la voir dans mon exemple (mille excuses ). En fait je voulais l'épurer pensant que ça ne servait à rien de mettre des lignes "inutiles"... Et l'erreur venait de ces lignes

    Le problème venait du fait que je fais d'abord une requete select et ensuite une requete insert. Pour la requete insert j'avais besoin d'un Parameters.AddWithValue. Je le faisait en premier, je faisait ensuite mon select, puis mon insert.
    En mettant la requete select avant le Parameters.AddWithValue, le select fonctionne.

    Désolée pour ceux qui chercher à répondre à mon casse tête (irrésolvable)...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [11g] Problème Oracle ORA-12899
    Par hamza.rezgui dans le forum Administration
    Réponses: 6
    Dernier message: 27/01/2014, 17h11
  2. ORA-01036: illegal variable name/number
    Par yupa dans le forum SQL
    Réponses: 1
    Dernier message: 01/02/2008, 13h15
  3. [ORACLE 8i] ORA-01036 / oci bind by name pour string
    Par mrfred dans le forum Interfaces de programmation
    Réponses: 7
    Dernier message: 02/08/2007, 13h11
  4. Erreur oracle : ORA-01036
    Par freestyler1982 dans le forum Oracle
    Réponses: 1
    Dernier message: 14/11/2006, 11h29
  5. [Oracle Lite 10g]ORA-00957: duplicate column name
    Par maredami dans le forum Oracle
    Réponses: 4
    Dernier message: 02/11/2005, 14h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo