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

SQL Oracle Discussion :

[Oracle9i] Ora 01722 lors d une requête


Sujet :

SQL Oracle

  1. #1
    Futur Membre du Club
    Inscrit en
    Mai 2009
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 5
    Points : 6
    Points
    6
    Par défaut [Oracle9i] Ora 01722 lors d une requête
    Bonjour,

    J'ai ici une requête :

    SELECT A.nudoss
    FROM ESSAI.TOTO A, ESSAI.TITI B
    WHERE A.NUDOSS = B.NUDOSS
    AND B.IDLINK = 720119395
    AND A.IDPRME = 'VHD'
    AND A.STGEST IN
    ('NTR','ENC')

    Le problème est lorsque je l'exécute sur mon environnement de préprod, elle fonctionne parfaitement mais dès que je veux la lancer sur la production, j ai l'erreur suivante :

    ORA-01722: invalid number

    Pour résoudre le problème car le soucis vient de la colonne IDLINK (qui est en char de 40 sur les 2 environnements) j ai mis des simples côtes à cette endroit :
    AND B.IDLINK = '720119395' et là celà fonctionne en production.

    Ma question est savoir pourquoi cette requête fonctionne t elle en préprod sans les côtes et pas en production?

    Pour information, je suis en Oracle 9.2.0.8. Quelque soit le user que l'on utilise pour la requête on a le même résultat.
    Et enfin, l'environnement de préprod et de prod est sur le même serveur.

    Par avance, merci de votre aide.

  2. #2
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Quand vous écrivez
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    B.IDLINK = 720119395
    vous demandez à Oracle de faire une coercition, c’est-à-dire une conversion implicite entre une chaîne de caractères (la colonne B.IDLINK) et une valeur numérique (720119395).
    Or si la colonne IDLINK contient une seule valeur non numérique la conversion n’est pas possible et donc Oracle le signale via l’erreur.
    Prenez soin de ne pas utiliser des conversions implicites, parfois ils ont des impacts négatifs.

  3. #3
    Futur Membre du Club
    Inscrit en
    Mai 2009
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Effectivement, il y avait une donnée "pourrie" dans la colonne qui n'avait pas une valeur numérique.
    Pour ce qui est des conversions implicites, je n'ai malheureusement pas trop le choix, c'est le choix dictée pour une application et on doit faire avec.

    En tout cas, merci pour la réponse efficace.

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

Discussions similaires

  1. [MySQL] Appliquer une fonction sur un champ lors d'une requête
    Par Jérémy197 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 13/08/2006, 13h29
  2. Types de données incompatibles lors d'une requête sous access
    Par RodEpsi dans le forum Bases de données
    Réponses: 32
    Dernier message: 21/07/2006, 15h51
  3. Erreur lors d'une requête d'ajout
    Par olivia.of dans le forum Access
    Réponses: 13
    Dernier message: 14/02/2006, 12h18
  4. [MySQL] Perte d'information lors d'une requête de visualisation
    Par niccco dans le forum PHP & Base de données
    Réponses: 17
    Dernier message: 21/10/2005, 13h46
  5. Mauvais noms de colonnes lors d'une requête
    Par nmathon dans le forum Bases de données
    Réponses: 2
    Dernier message: 09/04/2004, 07h27

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