SQL loader

[Fermé]
Signaler
Messages postés
3
Date d'inscription
mardi 8 septembre 2009
Statut
Membre
Dernière intervention
28 octobre 2009
-
Messages postés
367
Date d'inscription
dimanche 12 octobre 2008
Statut
Membre
Dernière intervention
20 octobre 2013
-
Bonjour,
j'utilise sql loader pour charger des fichiers de donnees dans une base oracle, ya t'il un moyen pour passer le nom du fichier de donnee au fichier de controle comme parametre, je ve dire je ve utilsier une boucle pour traiter tous les fichiers de donnees l'un apres l'autre en passant son nom au fichier de controle a chaque iteration de la boucle
merci d'avance

3 réponses


salut

je crois pas que ce soit possible (mais je n'en suis plus sur et j'ai pas d'oracle sous la main)
par contre rien ne t'empêche de construire ton fichier de contrôle dans ta boucle et d'y glisser à l'intérieur le nom de ton fichier texte
Non je ne crois pas que ce soit possible.
Si tes fichiers ont les mêmes colonnes, tu peux les concatener et les charger en une seule fois.
Dans le cas contraire et si on suit ta logique, en passant le nom de ton fichier en parametre, tu devrais aussi passer les colonnes en parametres.
Autant créer des fichiers de control pour chaque table et/ou fichier et créer un .bat dans lequel tu regroupes chacune de tes lignes de commande sql. Quand tu lances ton .bat sur ta commande dos, il te charge tes fichers sans pb.
Bon courage
Messages postés
367
Date d'inscription
dimanche 12 octobre 2008
Statut
Membre
Dernière intervention
20 octobre 2013
27
Bonsoir Yasslb,

Pourquoi cela ne serait-il pas possible ?
Il suffit d"écrire un script DOS,
d'y intégrer dans la boucle la commande qui lance SQLLoader :

C:\ORANTV9\bin\SQLLdr USERID=tonLogin/tonMdP@taBD CONTROL=ficControl.ctl LOG=traces.log BAD=rejets.bad DATA=donnees.txt ERRORS=9999 ROWS=1000


et de remplacer donnees.txt par ce qui correspond à un paramètre sous DOS (ça doit ressembler à %fichierDonnees% )

NB : puisque le sqlloader est lancé plusieurs fois, il sera certainement utile de mettre en paramètre le nom des fichiers .BAD et .LOG.

A vous de programmer le shell car là, ce n'est pas ce que je fais le mieux.

Voilà.

Remarque : attention, selon les versions du SGBD Oracle, le path et le nom de l'exécutable de SQLLoader peut changer ^^_^^