SQL loader

Fermé
yasslb Messages postés 3 Date d'inscription mardi 8 septembre 2009 Statut Membre Dernière intervention 28 octobre 2009 - 28 oct. 2009 à 10:47
BadGuitarist Messages postés 367 Date d'inscription dimanche 12 octobre 2008 Statut Membre Dernière intervention 20 octobre 2013 - 14 janv. 2010 à 00:55
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
A voir également:

3 réponses

J'ai oublié mon nick
28 oct. 2009 à 11:26
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
0
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
0
BadGuitarist Messages postés 367 Date d'inscription dimanche 12 octobre 2008 Statut Membre Dernière intervention 20 octobre 2013 27
14 janv. 2010 à 00:55
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 ^^_^^
0