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 de format d'un champ numérique dans un fichier de contrôle


Sujet :

Oracle

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 350
    Points : 130
    Points
    130
    Par défaut Problème de format d'un champ numérique dans un fichier de contrôle
    bonjour tout le monde,

    J'ai une table dont la description est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    create table chargement_prelevement_mandat(
      prelevement_reference VARCHAR2(16 BYTE),
      prelevement_iban VARCHAR2(34 BYTE),
      prelevement_type char(1),
      prelevement_id_destinataire VARCHAR2(19 BYTE),
      prelevement_date_echeance date,
      prelevement_montant_debite NUMBER(14,2),
      prelevement_date_integration date,
    prelevement_flag_represent char(1)
    );

    J'ai un fichier de contrôle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    LOAD DATA
    INTO TABLE CHARGEMENT_PRELEVEMENT_MANDAT
    APPEND
    WHEN (1:2)='03' TRAILING NULLCOLS
    (
            prelevement_reference POSITION(141:156) char(16),
            prelevement_iban POSITION(43:76) char(34),
            prelevement_id_destinataire POSITION(21:39) char(19) NULLIF(prelevement_id_destinataire = "0000000000000000000"),
            prelevement_type POSITION(40:40) char(1),
            prelevement_date_echeance POSITION(108:115) date "YYYYMMDD" NULLIF(prelevement_date_echeance="00000000"),
            prelevement_montant_debite POSITION(77:94) decimal,
            prelevement_date_integration "sysdate",
            prelevement_flag_represent POSITION(157:157) char(1)
    )
    Je souhaite remplir la table via SqlLoader qui va lire un fichier plat.

    Le problème que j'ai c'est au niveau du champ : prelevement_montant_debite POSITION(77:94) decimal, je sais pas comment renseigner la valeur dans le fichier text (l'input) que je vais construire pour que SqlLoader l'utilise.

    j'ai essaiyé plusieurs format (111111111111,11) et mêm (111111111111.00) mais lorsque je lance SqlLoader (via un batch .sh) j'ai l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Error on table CHARGEMENT_PRELEVEMENT_MANDAT, column PRELEVEMENT_MONTANT_DEBITE.
    ORA-01460: unimplemented or unreasonable conversion requested
    .

    Le problème c'est que lorsque je lance une requête simple (insert into ça passe).

    Alors y'a -t- il une format spécifique à mettre dans le fichier plat ou dans le fichier de contrôle?.

    Merci d'avance pour votre aide.

  2. #2
    Membre averti Avatar de dariyoosh
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 236
    Points : 334
    Points
    334
    Par défaut
    Bonjour,

    D'après la définition de votre table le champ prelevement_montant_debite est un nombre avec max 14 chiffres dont (éventuellement) max deux chiffres après le point décimal.

    Cependant dans votre fichier de contrôle vous avez écrit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    . . .
    prelevement_montant_debite POSITION(77:94) decimal,
    . . .
    ce qui fait: (94 - 77) + 1 = 17 + 1 = 18 chiffres
    Autrement dit, vous tentez d'insérer un champ de 18 chiffres dans une colonne de votre table oracle, alors que cette colonne ne peut contenir que max 14 chiffres.

    ... Le problème c'est que lorsque je lance une requête simple (insert into ça passe) ...
    écrivez ici, votre INSERT avec la valeur que vous avez insérée avec succès.
    Cordialement,
    Dariyoosh

Discussions similaires

  1. Format d'un champ heure dans publipostage
    Par marco361020 dans le forum Word
    Réponses: 9
    Dernier message: 23/03/2007, 00h05
  2. Champs numérique dans TextBox
    Par Jiyuu dans le forum VB.NET
    Réponses: 5
    Dernier message: 13/03/2007, 23h28
  3. champs numériques dans un recordset
    Par icoons dans le forum VB.NET
    Réponses: 5
    Dernier message: 14/02/2007, 12h36
  4. Réponses: 2
    Dernier message: 04/05/2006, 12h34
  5. Champs numériques dans une base de données à exporter
    Par ulukahio dans le forum Autres langages
    Réponses: 18
    Dernier message: 16/03/2005, 11h50

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