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 :

Sql*Loader et date


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 16
    Par défaut Sql*Loader et date
    Bonjour,

    J'utilise Sql*Loader pour charger une table, et j'ai un champ date dans cette table.
    J'ai lu par-ci par-là sur le net la façond e faire, mais soit je suis crétin, soit c'est mon Loader. Dans tous les cas, ça marche pas.

    Si quelqu'un pouvait me dire ce qui ne fonctionne pas là-dedans...

    Merci bien
    (note : je sais qu'il y a un champ de plus dans ma table que dans mon fichier, mais ça n'a pas d'importance, et ça ne devrait aps empêcher le loader de fonctionner)

    Sans plus attendre, les données :
    ---
    Fichier du Loader
    OPTIONS ( SKIP=1)
    LOAD DATA
    INFILE 'relation_acteur.csv'
    INTO TABLE "TMP_ACTRELATION"
    (ACTCODE,
    ACTCODELIE,
    TRECODE,
    AREDTDEB "to_date(:AREDTDEB, 'YYYYMMDD')",
    AREQP ,
    FLAGTRT)

    ---
    Fichier CSV
    BG000001;BR012177;?;19800101;1

    ---
    CREATE TABLE TMP_ACTRELATION
    (
    ACTCODE VARCHAR2(15),
    ACTCODELIE VARCHAR2(15),
    TRECODE VARCHAR2(7),
    AREDTDEB DATE,
    AREQP NUMBER(7),
    FLAGTRT VARCHAR2(1)
    )
    ---
    et le message d'erreur :

    Enregistrement 1 : Rejeté - Erreur sur table "TMP_ACTRELATIONB2", colonne AREDTDEB.
    ORA-01840: valeur entrée pas assez longue pour le format de la date




    EDIT : correction du format de la date en YYYYMMDD

  2. #2
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 88
    Par défaut
    A chaud, je dirai que ton format de date n'est pas bon. Je m'explique :
    le format reconnu par ORACLE est YY pour les années et non YYYY comme il semble être défini dans ton fichier.
    Il faut modifier ton format d'entrée dans le .ctl en ajoutant 2 YY dans ton masque de date.

    @+,
    NicK.

  3. #3
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 16
    Par défaut
    My bad, j'ai corrigé dans ma question.
    Dans mon fichier CTL c'est bel et bien YYYYMMDD que j'ai (là, c'était juste un test).

  4. #4
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 88
    Par défaut
    Tu peux fournir le fichier de log au complet STP ?
    Là, on ne voit pas grand chose.
    Au fait, tu as bien défini une ligne d'entête dans ton fichier csv ? Il contient bien plusieurs lignes ?

    @+,
    NicK.

  5. #5
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 16
    Par défaut
    Voici mon fichier log presque au complet (pusiqu'il y a une cinquante d'erreur avant arrêt du Loader)

    Sinon je confirme, l'erreur ne provient pas de la première ligne, j'ai zappé la ligne d'entête en vous envoyant mon csv


    Nombre à charger : ALL
    Nombre à sauter: 1
    Erreurs permises: 50
    Tableau de liens : 64 lignes, maximum de 65536 octets
    Continuation : aucune spécification
    Chemin utilisé: Classique

    Table "TMP_ACTRELATIONB2", chargé à partir de chaque enregistrement physique.
    Option d'insertion en vigueur pour cette table : INSERT

    Nom de colonne Position Long. Séparat. Encadrem. Type de données
    ------------------------------ ---------- ----- ---- ---- ---------------------
    ACTCODE FIRST 1 CHARACTER
    ACTCODELIE NEXT 1 CHARACTER
    TRECODE NEXT 1 CHARACTER
    AREDTDEB NEXT 1 CHARACTER
    chaîne SQL pour la colonne : "to_date(:AREDTDEB, 'YYYYMMDD')"
    AREQP NEXT 1 CHARACTER
    FLAGTRT NEXT 1 CHARACTER

    Enregistrement 1 : Rejeté - Erreur sur table "TMP_ACTRELATIONB2", colonne AREDTDEB.
    ORA-01840: valeur entrée pas assez longue pour le format de la date

  6. #6
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 88
    Par défaut
    Je ne sais pas exactement quelle est l'erreur mais dans ton ctl, je mettrai :
    un séparateur (le ; )
    un délimiteur de chaine de caractères (le ") si c'est possible.

    @+,
    NicK, en week-end.

+ 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 - Champ date avec valeur nulle
    Par frglyon dans le forum SQL
    Réponses: 1
    Dernier message: 07/02/2014, 16h00
  3. Pb sql loader condition date
    Par the_youpi dans le forum SQL*Loader
    Réponses: 3
    Dernier message: 03/05/2007, 07h37
  4. Réponses: 6
    Dernier message: 10/08/2006, 15h45
  5. [SQL*Loader] Fusionner 2 colonnes dates
    Par choubiroute dans le forum Oracle
    Réponses: 4
    Dernier message: 21/04/2005, 14h24

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