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

VB.NET Discussion :

Erreur : ORA - 01745


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 84
    Par défaut Erreur : ORA - 01745
    Bonjour, j'ai une petit problème (vous vous en doutez ;D) lors de l'execution de ma commande. J'ai l'erreur "ORA-01745 : nom de variable hôte/attachée (bind) non valide"

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    Private Sub cmdValider_Click(sender As System.Object, e As System.EventArgs) Handles cmdValider.Click
            Dim strConnex As String
            Dim Rqt As String
            strConnex = GetConnexionString()
            Try
                Me.objConnexion = New OracleConnection(strConnex)
                Me.objConnexion.Open()
                ' Requête paramétrée    
     
                Rqt = "INSERT INTO EVENEMENT (LIBELLE, DTE_EVENT, ID_EVENT, ID_DECISION, ID_TYPE_EVENT) VALUES (:LibEvent, TO_DATE(:Date), :NbEvent, :NbDeci, 1)"
     
                ' On crée une commande Oracle    
                Using cmd = New OracleCommand()
                    cmd.Connection = Me.objConnexion
                    cmd.CommandText = Rqt
                    cmd.CommandType = CommandType.Text
     
                    ' On définit les valeurs des paramètres de la requête
                    cmd.Parameters.Add(":LibEvent", OracleDbType.Varchar2).Value = txtNatureEvenement.Text()
                    cmd.Parameters.Add(":Date", OracleDbType.Date).Value = DateTimePicker1.Value
                    cmd.Parameters.Add(":NbEvent", OracleDbType.Int32).Value = NbEvent
                    cmd.Parameters.Add(":NbDeci", OracleDbType.Int32).Value = NbDeci
     
                    ' On exécute la requête    
                    Using dr As New OracleDataAdapter
                        cmd.ExecuteNonQuery()
     
                        MessageBox.Show("L'évènement à été ajouté avec succès!")
                        Connection.Show()
                        Me.Hide()
                    End Using
                End Using
     
            Catch ex As Exception
                ' --Message d'erreur en cas de problême de connexion à la BDD--
                MessageBox.Show("ERREUR : " & ex.ToString)
            End Try
        End Sub
    Je pense (selon moi) que l'erreur viens de mon DateTimePicker. En effet, lorsque je met un point d'arret juste avant l'execution de ma commande, je remarque que le value du DateTimePicker ne prend pas la valeur 05/05/2013 09:58:00 (par exemple) mais #5/9/2013 09:58:00 AM# a la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cmd.Parameters.Add(":Date", OracleDbType.Date).Value = DateTimePicker1.Value
    je pense que ça peut venir de là.

    Aidez moi svp

  2. #2
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    D'après ce lien, le message d'erreur est causé parce que le nom d'une variable est potentiellement un mot clef réservé. La solution préconisée est de changer le nom de la variable. Donc effectivement il est possible que Date soit un mot clef réservé et que tu doives utiliser autre chose (ex. DateValue).
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  3. #3
    Membre Expert Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Par défaut
    Google, ~4 secondes de recherche.

    ORA-01745: invalid host/bind variable name
    Cause: A colon in a bind variable or INTO specification was followed by an inappropriate name, perhaps a reserved word.
    Action: Change the variable name and retry the operation.

    Essaye de remplacer :date par un autre nom ?

    EDIT: Arf, grillé.

  4. #4
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 84
    Par défaut
    Si je change mon ate par autre chose j'ai une autre erreur de violation de contrainte d'intégrité :s pourtant la requete fonctionne sous sqldeveloper en remplaçant par des valeurs.

  5. #5
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    Si tu as une erreur différente du message ORA-01745, ça veut dire que le fait de remplacer le nom de la variable était la bonne solution.

    S'il y a un problème d'intégrité, c'est parce que l'une des clefs étrangères de l'enregistrement que tu insères n'est pas valide (ie. la valeur n'existe pas dans la table référencée).

    Donc vérifie bien que tes paramètres :NbEvent, :NbDeci, et la valeur 1 sont corrects.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  6. #6
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 84
    Par défaut
    Je rectifie, ma requete MARCHAIT...
    En effet quand je tente cette requete:

    INSERT INTO EVENEMENT (LIBELLE, DTE_EVENT, ID_EVENT, ID_DECISION, ID_TYPE_EVENT)
    VALUES ('TEST', TO_DATE(05/06/2013 10:54:00), 5, 5, 1)

    J'ai un jolie "La variable attachée (bind variable) "54" est NON DECLAREE
    0 lignes inséré."

    alors que pourtant mon DTE_EVENT est bien en DD/MM/YYYY HH24:MI:SS

  7. #7
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    Difficile de te suivre... Essaie avec des simple quotes : TO_DATE('05/06/2013 10:54:00')
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  8. #8
    Membre Expert Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Par défaut
    et to_date('05/06/2013 10:54:00', 'yyyy/mm/dd hh24:mi:ss') ?

Discussions similaires

  1. Erreur ORA-12514 avec database link
    Par gafreu dans le forum Administration
    Réponses: 20
    Dernier message: 09/09/2004, 11h53
  2. Erreur ORA-01036 sur un XMLGRAM
    Par sch dans le forum XMLRAD
    Réponses: 5
    Dernier message: 07/09/2004, 14h56
  3. code retour UNIX sur erreur ORA
    Par vinz_07 dans le forum Administration
    Réponses: 7
    Dernier message: 25/08/2004, 11h04
  4. erreur ora-12801 : error signaled in parallel query server
    Par dngaya dans le forum Administration
    Réponses: 5
    Dernier message: 15/04/2004, 16h25
  5. erreur "ORA-22905" lors de l'execution d'un requet
    Par benji999 dans le forum Administration
    Réponses: 26
    Dernier message: 14/04/2004, 11h47

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