Sql*Loader

Résolu/Fermé
FanoP - 15 nov. 2011 à 11:24
 FanoP - 29 nov. 2011 à 11:29
Bonjour,

Je voudrais savoir comment je pourrais faire un sql loader avec une condition.

exemple :C:\load>sqlldr userid=formation/formation control=control.txt log=log.txt bad=bad.txt discard=disard.txt direct=y errors=0


C'est à dire, dans mon fichier il y a un champ qui prend la donnée E ou L et par rapport à cette donnée ce fichier ce charge dans une table précise (table CFD_E ou table CFD_L).

Merci
A voir également:

1 réponse

jee pee Messages postés 39650 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 26 avril 2024 9 238
15 nov. 2011 à 12:51
Bonjour,

Je ne sais plus s'il est possible de charger 2 tables en une seule opération. Pour résoudre ce cas je ferais simple, le chargement en 2 fois.

En mettant dans le fichier de contrôle quelque chose comme :

INTO TABLE CFD_L
when (6:1) = 'L'

puis un autre :
INTO TABLE CFD_E
when (6:1) = 'E'

(6:1) correspondant à la position du champ.

cdlt

0
Merci de ta réponse jee pee j'avais également pensé a cette solution.
Je crois que j'ai pas le choix
0
jee pee Messages postés 39650 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 26 avril 2024 9 238
Modifié par jee pee le 15/11/2011 à 13:07
Pour 2 tables en simultanée c'est tout simple cf :

http://www.orafaq.com/wiki/SQL*Loader_FAQ#Can_one_load_data_from_multiple_files.2F_into_multiple_tables_at_once.3F
0
je te remercie
0
Bonjour jee pee j'ai une autre question à te poser

c'est toujours pour la condition when
CFD_LIB1 POSITION(036:065) CHAR , dans cette ligne j'ai plusieurs caractère mais je voudrais qu'il regarde la position 40 qui doit etre = à' L' ou 'E' pour ensuite allez dans la bonne table
Je ne connais pas la syntaxe serai-ce
INTO TABLE CFD_E
when (40:1) = 'E'

INTO TABLE CFD_L
when (40:1) = 'L'

Je te remercie d'avance.
0
jee pee Messages postés 39650 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 26 avril 2024 9 238
Modifié par jee pee le 29/11/2011 à 11:27
D'après les exemples pour ce cas là la syntaxe serait plutôt (position début:position fin) donc (40:40)
0