SQL*Loader : contourner l'insertion de certaines lignes
Bonjour,
Voici mon problème :
Je dispose d'un fichier permettant d'insérer dans une table externe via le SQL*Loader de la forme suivante :
Citation:
01|valeur1|valeur2|valeur3|
50|data1|data2|data3|data4|data5|data6|data7
50|data1|data2|data3|data4|data5|data6|data7
...
50|data1|data2|data3|data4|data5|data6|data7
50|data1|data2|data3|data4|data5|data6|data7
50|data1|data2|data3|data4|data5|data6|data7
99|valeur|
Ce fichier dispose donc d'un en-tête et d'un en-pied qui ne dispose pas du même nombre de colonnes que les données et les données contenues dans ces première et dernière ligne ont une taille supérieure à celle devant être insérées dans la table externe.
Dans le SQL*Loader, j'utilise un LOAD WHEN sur la première colonne mais le traitement me ressort les erreurs suivantes :
Citation:
KUP-04021: field formatting error for field DATA3
KUP-04026: field too long for datatype
KUP-04101: record 1 rejected in file /BOFI/data/in/TCEENB/F04B19072007.001
KUP-04021: field formatting error for field DATA3
KUP-04023: field start is after end of record
KUP-04101: record 202 rejected in file /BOFI/data/in/TCEENB/F04B19072007.001
Je ne peut pas utiliser de SKIP car il se peut que mon en-tête soit sur plusieurs lignes et la quantité de données à insérer dans la table est variable.
Voici comment peut se présenter le fichier :
Citation:
01|valeur1|valeur2|valeur3|
02|valeur4|valeur5|
50|data1|data2|data3|data4|data5|data6|data7
50|data1|data2|data3|data4|data5|data6|data7
...
50|data1|data2|data3|data4|data5|data6|data7
50|data1|data2|data3|data4|data5|data6|data7
50|data1|data2|data3|data4|data5|data6|data7
99|valeur|
Je n'ai aucun pouvoir sur la création du fichier de données qui me sont fournis.
Ma question est donc la suivante :
Comment faire pour que le SQL*Loader ne prenne en compte que les lignes du fichier dont la première colonne vaut 50.
Merci d'avance.