SQL loader

yasslb Messages postés 3 Date d'inscription   Statut Membre -  
BadGuitarist Messages postés 373 Statut Membre -
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
Configuration: Windows XP Internet Explorer 8.0

3 réponses

  1. J'ai oublié mon nick
     
    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
  2. dccooper
     
    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
  3. BadGuitarist Messages postés 373 Statut Membre 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 ^^_^^
    0