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

Oracle Discussion :

Problème Nombre Non Valide


Sujet :

Oracle

  1. #1
    Membre régulier
    Inscrit en
    Juin 2008
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Juin 2008
    Messages : 122
    Points : 124
    Points
    124
    Par défaut Problème Nombre Non Valide
    Bonjour,

    Mon problème est surement simple. J'ai une requete:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT DATEHEURE,VAL_MetBC,VAL_AbsSup, 
    MAX( CASE WHEN ID_CARACT='529' AND STATUT='H2AAHO1018JC' THEN TO_NUMBER(REPLACE(REPLACE(VAL_CARACT,'na','0'),'.',',')) END) as COL1
     FROM SADD_IMP_VAL_TMP   WHERE POSTE='FRCS1316' 
    GROUP BY DATEHEURE,VAL_MetBC,VAL_AbsSup
    Elle fonctionne parfaitement sur SQLWiew, mais qu'en je l'execute sur WinDev il me renvoie l'erreur ORA-01722: Nombre non valide
    Mais si je pointe sur une table quasi identique, remplit des memes valeurs et stockée sur une autre base de donnée cela fonctionne parfaitement!!

    Mes Val_CARACT sont des chiffres de la fome "999999.99999" en chaine de caractère. Mais comme cela fonctionne sur l'autre table, je ne pense pas que ce soit un problème de nombre valide ou pas.
    PS: dans mon test il n'y a pas de "na".

    Merci d'avance.
    N_Ron

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 861
    Points : 965
    Points
    965
    Par défaut
    C'est sans doute un problème de NLS_NUMERIC_CHARACTERS, qui doit changer d'une base à l'autre ou d'une session à l'autre.
    Tu peux lui préciser la nature des délimiteurs dans la fonction to_number :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT DATEHEURE,VAL_MetBC,VAL_AbsSup, 
    MAX( CASE WHEN ID_CARACT='529' AND STATUT='H2AAHO1018JC' THEN TO_NUMBER(REPLACE(REPLACE(VAL_CARACT,'na','0'),'.',','),'NLS_NUMERIC_CHARACTERS = '', ''') END) AS COL1
     FROM SADD_IMP_VAL_TMP   WHERE POSTE='FRCS1316' 
    GROUP BY DATEHEURE,VAL_MetBC,VAL_AbsSup
    Ceci étant, il serait peut être mieux de corriger le problème en amont en uniformisant ce paramètre sur vos différentes bases/instances/sessions.

  3. #3
    Membre régulier
    Inscrit en
    Juin 2008
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Juin 2008
    Messages : 122
    Points : 124
    Points
    124
    Par défaut Merci
    Merci à toi Snipah,

    J'ai essayé ta solution et elle fonctionne cependant il n'est pas possible d'harmoniser nos bases et mon application doit fonctionner sur les deux si nécessaire donc j'ai choisi de rentrer mes valeurs directement en entier.
    C'est encore plus facile !
    Encore merci car dans tous les cas tu as mis le doigt sur un de nos défaut de paramétrage.

    Bonne continuation,
    N_Ron

Discussions similaires

  1. ORA-01722: Nombre non valide
    Par misa dans le forum Oracle
    Réponses: 4
    Dernier message: 18/12/2007, 15h23
  2. Oracle - Nombre non valide
    Par pado_83 dans le forum JDBC
    Réponses: 2
    Dernier message: 28/09/2006, 15h11
  3. [SQLLDR]ORA-01722: Nombre non valide
    Par syl2095 dans le forum Oracle
    Réponses: 5
    Dernier message: 22/05/2006, 15h42
  4. Réponses: 7
    Dernier message: 07/03/2006, 09h34
  5. Problème : XML non valide...
    Par loupdeau dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 08/04/2005, 15h12

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