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

Import/Export Oracle Discussion :

[SQL LOADER] problème d'ordonnancement de champs


Sujet :

Import/Export Oracle

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 55
    Points : 49
    Points
    49
    Par défaut [SQL LOADER] problème d'ordonnancement de champs
    Bonjour à tous,
    j'espère que ce souci n'a pas déjà été traité, mais après recherche je n'ai rien trouvé.
    Voilà mon problème:
    j'ai une base ORA 8i dans laquelle se trouve une table temporaire (TEMP).
    Je cherche à y charger un fichier texte via sqlloader.

    La table est ainsi: TEMP(A,B,C,D,E,F) qui sont tous des varchar de taille différente. Mon fichier possède les colonnes suivantes: A,B,C,D,G,F.
    Je cherche donc à skipper la colonne G du fichier, ce qui peut se faire via un FILLER.
    Mais apparemment j'obtiens des erreurs d'intégration tout de même, certainement dues à ma colonne E non présente dans le fichier mais bien présente dans la table.
    Tel que je comprend le fonctionnement de sqlloader: il va chercher à charger les colonnes ABCDF du fichier dans les colonnes ABCDE de la table entrainant les erreurs suivantes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ORA-01401: inserted value too large for column
    Y a-t-il une option quelconque à ajouter au fichier de contrôle pour permettre le remplissage de la table? Ou faut-il absolument supprimer la colonne E de la table (inexistante dans le fichier) pour que celle-ci ne contienne que des colonnes présentes initialement dans le fichier à charger?

    J'espère avoir été clair.

    EDIT: à moins que je ne repousse ma colonne E à la fin de la table? TEMP(A,B,C,D,F,E)

  2. #2
    Membre expérimenté Avatar de fatsora
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 103
    Points : 1 332
    Points
    1 332
    Par défaut
    Bonjour,

    Tu specifies tes colonnes dans le fichier de controle

    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
    31
    32
    33
     
    > desc t2
     Name                                      Null?    Type
     ----------------------------------------- -------- ----------------------------
     COL1                                               VARCHAR2(20)
     COL2                                               NUMBER
     COL3                                               VARCHAR2(500)
     COL4                                               VARCHAR2(10)
     COL5                                               VARCHAR2(20)
     
     
    LOAD DATA
    INFILE 'TEST.csv'
    BADFILE 'TEST.bad'
    DISCARDFILE 'TEST.dsc'
    APPEND INTO TABLE T2
    FIELDS TERMINATED BY "," OPTIONALLY ENCLOSED BY '"'
    TRAILING NULLCOLS
    (
    col1,
    col2 ,
    col3    filler char(32000)   ,
    col4
    )
     
     
    sqlldr scott/tiger data=.../test.csv control=t2.ctl skip=1
     
    SQL*Loader: Release 11.1.0.7.0 - Production on Fri Jun 12 10:15:21 2009
     
    Copyright (c) 1982, 2007, Oracle.  All rights reserved.
     
    Commit point reached - logical record count 3

    asktom.oracle.com tahiti.oracle.com otn.oracle.com

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.


    phrase chinoise issue du Huainanzi

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 55
    Points : 49
    Points
    49
    Par défaut
    Bonjour,
    oui c'est bien ce que j'ai dans mon .ctl:
    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
    LOAD DATA
    INFILE 'TEST.csv'
    BADFILE 'TEST.bad'
    DISCARDFILE 'TEST.dsc'
    TRUNCATE INTO TABLE T2
    FIELDS TERMINATED BY "|" OPTIONALLY ENCLOSED BY '"'
    TRAILING NULLCOLS
    (
    A,
    B,
    C,
    D,
    G FILLER CHAR(32000),
    F
    )
    Mais en fait, mon problème vient tout simplement d'une erreur de format de fichier: un format windows et non unix. Et comme je n'ai pas de caractère "|" en fin de ligne (dernier champ), la valeur dans ma colonne F prenait un caractère de plus (\r) et dépassait la taille autorisée de la colonne F de la table...
    Je pense pouvoir clore cette discussion.
    Merci pour ta réponse.

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

Discussions similaires

  1. SQl LOADER: Problème de date
    Par claralavraie dans le forum SQL*Loader
    Réponses: 25
    Dernier message: 28/03/2017, 11h24
  2. Sql Loader - Problème avec 0d0a dans un champ texte
    Par frglyon dans le forum Import/Export
    Réponses: 0
    Dernier message: 18/02/2014, 08h27
  3. SQL Loader : problème champ ID
    Par jnp87 dans le forum SQL*Loader
    Réponses: 15
    Dernier message: 16/08/2006, 15h44
  4. [SQL*Loader] Problème de chargement de nombres
    Par sebduth dans le forum Oracle
    Réponses: 10
    Dernier message: 18/11/2005, 10h07
  5. Réponses: 4
    Dernier message: 10/06/2004, 18h05

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