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 :

Erreur 01722 Invalide number


Sujet :

Oracle

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 115
    Points : 49
    Points
    49
    Par défaut Erreur 01722 Invalide number
    Bonjour

    j'ai crée une interface sortante , parmi les parametres de cette derniere le fichier SQL nommée Tatati_tatata il a la forme suivante :

    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
     
    --
    WHENEVER OSERROR EXIT 1;
    WHENEVER SQLERROR EXIT 1;
    --
    set heading off
    set space 0
    set linesize 20
    set pagesize 0
    set pause off
    set termout off
    set feedback off
    set verify off
    set echo off
    --
    SPOOL &1
    SELECT to_char(sysdate,'DDMMYYYY')||value1_Parameter
    FROM  t_parameter
    Where upper(id_parameter)=upper('T_EPARGNE_ACTE_EPARGNE_HRB_ID_EXPORT');
     
    select code_info || lpad(matricule,7,'0')||societe||nvl(annee_reference,'0000')||TO_CHAR(motif_conge_annuel_epargner,'CPY')||TO_CHAR(droits_conges_annuels_epargner,'000.00')||TO_CHAR(motif_rtt,'ART')||TO_CHAR(droits_rtt_epargner,'000.00')||TO_CHAR(codes_mouvements_necessaires,'A')
    from W_EXPORT_EPARGNE_HRB,t_parameter
    where upper(id_parameter)=upper('T_EPARGNE_ACTE_EPARGNE_HRB_ID_EXPORT')
     and  value1_parameter=code_export;
     
    SPOOL OFF
    --
    truncate table w_export_epargne_hrb;
    exit 0
    /
    une fois l'interface est executée j'ai l'erreur suivante

    ERREUR à la ligne 1:
    ORA -01722:Nombre non Valide

    sachant que les données sont des types suivants:




    Code Information varchar2
    Matricule (Note 1) varchar2
    Société (Note 1) varchar2
    Année_référence varchar2
    Motif_congé_annuel_épargner varchar2
    Droits_congés_annuels_épargner Number (3, 2)

    Motif_RTT varchar2
    Droits_RTT_épargner Number (3, 2)
    Codes_mouvements_nécessaires varchar2




    Merci à Vous

  2. #2
    Membre expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Points : 3 597
    Points
    3 597
    Par défaut
    La raison probable de l'erreur est l'utilisation de la chaîne 'CPY' qui n'est pas reconnue par Oracle:

    TO_CHAR(motif_conge_annuel_epargner,'CPY')||

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 115
    Points : 49
    Points
    49
    Par défaut Erreur ORA-01722
    Bonjour
    Vous avez tout à fait raison.
    Sachant que la but de cette commande est de formatter la donnée motif_conge_annuel_epargner sur le chaine de caractére 'CPY',comment je peux faire ça d'une autre manière.
    Merci

  4. #4
    Membre expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Points : 3 597
    Points
    3 597
    Par défaut
    La fonction Oracle TO_CHAR ne connaît pas le format 'CPY'.
    La liste des format supportés pour un NUMBER est la suivante:
    http://download-uk.oracle.com/docs/c...ts4a.htm#34597


    Pouvez-vous donner un exemple détaillé de ce que vous voulez faire ?

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 115
    Points : 49
    Points
    49
    Par défaut Affectation d'une constante (chaine de caractère) à une donnée
    Bonjour
    Vous avez tout à fait raison.
    Sachant que la but de cette commande est d'affecter la donnée motif_conge_annuel_epargner sur le chaine de caractére 'CPY',comment je peux faire ça d'une autre manière.
    Merci

  6. #6
    Membre expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Points : 3 609
    Points
    3 609
    Par défaut
    Vous voulez si motif_conge_annuel_epargner est null mettre 'CPY', c'est cela ?

    Dans ce cas utiliser la fonction nvl :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select nvl(motif_conge_annuel_epargner, 'CPY') from maTable

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 115
    Points : 49
    Points
    49
    Par défaut
    Effectivement,
    mais le but est de formatter la donnée
    motif_conge_annuel_epargner à la valeur
    'CPY' dans tous les cas si la valeur saisi pour
    la donnée est nulle ou pas.
    et merci

  8. #8
    Membre expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Points : 3 609
    Points
    3 609
    Par défaut
    Citation Envoyé par freestyler1982
    le but est de formatter la donnée
    motif_conge_annuel_epargner à la valeur
    'CPY' dans tous les cas si la valeur saisi pour
    la donnée est nulle ou pas.
    Dans ce cas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT  'CPY' motif_conge_annuel_epargner FROM maTable
    et ta colonne motif_conge_annuel_epargner affichera sur toutes les lignes CPY, mais je ne vois pas trop l'intérêt

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 115
    Points : 49
    Points
    49
    Par défaut
    Merci beaucoup pour votre aide .

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

Discussions similaires

  1. Erreur ORA-01722 "invalid number"
    Par devbegins dans le forum Débuter
    Réponses: 3
    Dernier message: 23/01/2010, 00h14
  2. Réponses: 2
    Dernier message: 27/05/2009, 13h57
  3. [ODBC] message "01722 Invalid Number"
    Par clbarbie dans le forum Interfaces de programmation
    Réponses: 0
    Dernier message: 03/04/2009, 17h53
  4. ORA-01722: invalid number dans un SQLLOADER
    Par Cofondinde dans le forum SQL*Loader
    Réponses: 1
    Dernier message: 13/12/2007, 02h31
  5. Erreur 06550 invalid number or types of parameter
    Par freestyler1982 dans le forum JDBC
    Réponses: 3
    Dernier message: 17/11/2006, 13h49

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