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

Accès aux données Discussion :

Requete oracle fonctionne sous toad mais renvoie une erreur via les dataset


Sujet :

Accès aux données

  1. #1
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 111
    Points : 54
    Points
    54
    Par défaut Requete oracle fonctionne sous toad mais renvoie une erreur via les dataset
    Bonjour,
    je suis en train de m'arracher les cheveux, j'ai une requête de mise à jour qui fonctionne sous toad mais dès que je souhaite appeler cette méthode via un dataset j'obtient l'erreur :

    Oracle.DataAccess.Client.OracleException: ORA-01008: not all variables bound

    je comprend pas ce qui ne va pas

    voila la requête si quelqu'un peut m'aider
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    UPDATE  AJUST_PROPOSITION
    SET  AJP_ETATPROP = 1
    WHERE    (TRUNC(AJP_DATE) = :JOUR) AND 
    (AJP_ARTICLE = :CODE)  AND 
    (AJP_ETAT = :ETAT) AND 
    ((AJP_LOT IS NULL) AND  (:LOT IS NULL) OR (AJP_LOT = :LOT) ) AND 
    (AJP_PEREMPTION = :PEREMP) OR(AJP_PEREMPTION IS NULL AND
    :PEREMP < TO_DATE('01/01/2002')))
    merci d'avance

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 754
    Points
    39 754
    Par défaut
    ça veut dire que tu n'as pas fixé de valeur pour tous les paramètres de la requête...

  3. #3
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 111
    Points : 54
    Points
    54
    Par défaut
    bah j'ai vérifié en mode debug au moment ou j'appelle cette méthode et les paramètres ont bien tous une valeur (j'ai vérifié plusieurs fois) le problème vient soit de :JOUR que je compare avec un trunc() d'une date ou de EREMP que je compare avec une date en dur et là j'avoue je ne sais pas si ma méthode de comparaison est possible (mais vu que ca fonctionne sus toad je me dis que si)

    éventuellement c'est les deux qui bloquent.

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 754
    Points
    39 754
    Par défaut
    Il me semble que j'avais eu des problèmes similaires avec le provider ODP.NET (Oracle.DataAccess.Client), et que ça marchait bien avec le provider fourni dans le framework (System.Data.OracleClient)... Je n'avais pas eu le temps de trop approfondir, si bien que finalement je m'étais résigné à utiliser le provider Microsoft.

    Mais je me demande si le problème n'est pas lié à la gestion des paramètres dans ODP.NET : je soupçonne qu'il ne les gère pas par nom mais seulement par position. Donc si tu as plusieurs occurences du même paramètre dans la requête, il faut peut-être l'ajouter plusieurs fois dans la collection Parameters (oui, c'est aberrant... c'est du Oracle quoi )

  5. #5
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Points : 8 080
    Points
    8 080
    Par défaut
    En essayant de résoudre un problème du même genre, je suis tombé sur ce fil que je déterre
    Oui par défaut ODP.Net utilisé les paramètres par position et non par nom par défault. Il faut utiliser command.BindByName = true où command est ta commande oracle pour utiliser le binding par nom.

Discussions similaires

  1. Réponses: 0
    Dernier message: 11/02/2013, 18h49
  2. Réponses: 2
    Dernier message: 14/04/2009, 08h35
  3. Une Action fonctionne sous FireFox, mais pas sur IE6/7
    Par 19cmos83 dans le forum Struts 1
    Réponses: 1
    Dernier message: 29/10/2008, 19h45
  4. Réponses: 1
    Dernier message: 24/01/2008, 12h11
  5. Requete sql vers ORACLE qui renvoi une erreur
    Par lilou77 dans le forum Oracle
    Réponses: 7
    Dernier message: 29/01/2007, 09h52

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