Précédent   Forum des professionnels en informatique > Bases de données > Oracle > Outils > SQL*Loader
SQL*Loader Forum d'entraide sur Oracle SQL*Loader
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/11/2010, 00h21   #1
Invité de passage
 
E Jerome
Inscription : octobre 2010
Messages : 2
Détails du profil
Informations personnelles :
Nom : E Jerome

Informations forums :
Inscription : octobre 2010
Messages : 2
Points : 0
Points : 0
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 !!
jaymz2010 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2010, 09h53   #2
Invité de passage
 
E Jerome
Inscription : octobre 2010
Messages : 2
Détails du profil
Informations personnelles :
Nom : E Jerome

Informations forums :
Inscription : octobre 2010
Messages : 2
Points : 0
Points : 0
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 :
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 !
jaymz2010 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h51.


 
 
 
 
Partenaires

Hébergement Web