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 04/10/2005, 15h14   #1
Invité de passage
 
Inscription : octobre 2005
Messages : 2
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 2
Points : 0
Points : 0
Par défaut Sql Loader

Bonjour,

j'ai un programme Sql*Loader, pour charger deux colonnes dans une table. Ca ressemble à ça:

LOAD DATA
APPEND
INTO TABLE TABLE_PROC
FIELDS TERMINATED BY ';'
( CODE_PROC CHAR,
T3_CODE INTEGER EXTERNAL )

Mais quand dans mon fichier à charger, j'ai une ligne avec 3 champs, par exemple :
Toto;15;autre

les champs "Toto" et "15" sont chargés dans la table sans générer d'erreur, et il ne prend pas en compte le 3ème champ ("autre") de la ligne. Moi, j'aimerais bien qu'il le prenne en compte et qu'il me génère une erreur!!
Y-a t'il une option à ajouter dans mon fichier ctl ou lors de l'appel à sqlloader pour gérer ce genre d'erreur?

Merci,
Soaz.
soaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/10/2005, 15h33   #2
Rédacteur/Modérateur
 
Inscription : janvier 2005
Messages : 2 320
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 320
Points : 2 368
Points : 2 368
Bonjour c'est normal au vue de ton fichier control tu ne paramétre que les deux premiers champs .
Pourquoi veux qu'il te génere une erreur ?


Jaouad
Jaouad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/10/2005, 15h50   #3
Invité de passage
 
Inscription : octobre 2005
Messages : 2
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 2
Points : 0
Points : 0
Je veux qu'il me génère une erreur, car je ne veux charger que 2 champs dans ma table. Et je veux controler les erreurs de syntaxe dans mon fichier de données;

Par exemple, si une ligne ne comporte qu'un seul champ, il me génère une erreur, c'est normal, il en attend un dexuième pour charger dans la table. Pour une ligne comportant 3 champs, je voudrais qu'il me dise "Attention, erreur dans le fichier de données, il y avait 3 champs, alors que je n'en attends que deux." Ou quelque chose du genre, pour que je sache qu'il y a des lignes incorrectes.
soaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/10/2005, 15h54   #4
Membre Expert
 
Avatar de nuke_y
 
Inscription : mai 2004
Messages : 1 812
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 1 812
Points : 1 609
Points : 1 609
Je ne sais pas comment le faire dans SQLLoader mais tu pourrais passer par une table intermédiaire sous Oracle.
__________________
Il vaut mieux monopoliser son intelligence sur des bêtises que sa bêtise sur des choses intelligentes.

Mon combat pour les droits des consommateurs face aux abus des grandes marques.
nuke_y est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/10/2005, 15h59   #5
Rédacteur/Modérateur
 
Inscription : janvier 2005
Messages : 2 320
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 320
Points : 2 368
Points : 2 368
C est pas possible car rien ne peut t'interdire d'avoir plus de champs que ce que tu veux bien insérer.

Le fichier de contrôle est la pour controler le chargement et dire quelle donnée va dans quelles champs

Ps : si tu veux quand même charger un fichier avec des lignes ayant une colonne alors que ta table en a plusieurs :

Citation:
TRAILING NULLCOLS
Un tutoriel va bientôt sortir pour Sqlloader

jaouad
Jaouad 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 02h04.


 
 
 
 
Partenaires

Hébergement Web