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*Loader Oracle Discussion :

Controler la longueur de chaque ligne


Sujet :

SQL*Loader Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 2
    Par défaut Controler la longueur de chaque ligne
    Bonjour,

    Je rencontre le problème suivant qui me bloque depuis pas mal de temps :

    J'ai un fichier de données que je charge dans différentes tables en fonction des 3 premiers caractères de la ligne.
    Par exemple, si la ligne commence par ZZZ je dois charger cette ligne dans la table TABLE_1. Si çà commence par XXX je dois charger dans la table TABLE_2

    Je n'ai aucun soucis à ce niveau là.

    Par contre, je dois controler que le nombre de caractères de chaque ligne correspond à celui attendu.
    Par exemple, tous les enregistrements qui commencent par ZZZ ont une longueur de 18 caractères. Je dois vérifier qu'il n'y en a pas davantage et si c'est le cas, rejeter l'enregistrement.

    Existe t-il une solution simple pour effectuer ce contrôle ? je n'ai pas trouvé grand chose, aucune propriété length par exemple...

    Merci d'avance pour votre aide !!

  2. #2
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 2
    Par défaut
    J'ai eu l'idée suivante : contrôler que le caractère qui suit le dernier caractère attendu de chaque ligne correspond à un retour chariot

    Par exemple je veux tester que les données qui commence par 'XXX' ne font que 18 caractères.
    Je teste donc si le 19ème caractère correspond au code hexa d'un retour chariot (soir 0D). Quand j'ouvre mon fichier avec un éditeur hexa, je vois d'ailleurs le code 0D0A à la fin de chacune des lignes de mon fichier (correspond à CRLF)

    J'ai donc écris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    WHEN ((1:3) = 'XXX') AND ((19) = X'0D')
    (
    ....
    )
    Mais çà ne fonctionne pas. SQL Loader ne charge pas la ligne.. argh !

Discussions similaires

  1. [Turbo Pascal] Tri d'un fichier texte selon la longueur de chaque ligne
    Par Almoez dans le forum Turbo Pascal
    Réponses: 5
    Dernier message: 19/10/2012, 18h03
  2. trait en dessous de chaque ligne d'un tableau
    Par auduma dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 14/04/2005, 13h51
  3. Réponses: 4
    Dernier message: 19/06/2004, 22h28
  4. Awk - Traiter chaque ligne du fichier passwd
    Par tony montana dans le forum Linux
    Réponses: 7
    Dernier message: 25/03/2004, 09h40
  5. [Composants] TRichEdit: Une police pour chaque ligne
    Par naili dans le forum C++Builder
    Réponses: 3
    Dernier message: 16/03/2003, 15h59

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