Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1678 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Problème de lancement de batch

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème de lancement de batch

n°1946510
MaRTy59
Posté le 02-12-2009 à 10:04:24  profilanswer
 

Bonjour !
Voila j'aimerais automatiser plusieurs chose, j'ai un fichier que je nomme log.bat qui se connecte à la base et lance un fichier :

Code :
  1. @echo off
  2. SQLPLUS user/pass@basetest @runall.sql
  3. exit


 
Le fichier runall.sql contient plusieurs fichiers à executer :

Code :
  1. @exp-civichim.sql
  2. @sqlldagt.bat
  3. @sqlldabs.bat
  4. @sqlldenf.bat


 
Le problème est que les fichiers sqlldagt.bat, sqlldabs.bat et sqlldenf.bat ne se lance pas !
Quand je les lance séparément il n'y a aucun problème mais quand j'exécute le log.bat il y a des erreurs ...
SP2-0734: commande inconnue au début de "sqlldr..." - le reste de la ligne est ignoré.
Pourtant quand je le lance seul, il s'exécute très bien, d'où peut venir le problème ?
Merci :)

mood
Publicité
Posté le 02-12-2009 à 10:04:24  profilanswer
 

n°1946541
MaRTy59
Posté le 02-12-2009 à 11:08:34  profilanswer
 

Up !

n°1946554
pataluc
Posté le 02-12-2009 à 11:50:57  profilanswer
 

il ne faut pas mettre des "exit" mais des "exit /b" à la fin de tes scripts, car sinon ca quitte tous les scripts.
 
autant pour moi... ca ne doit pas être ca. tu as vu que tu a mélangé des .sql et des .bat???


Message édité par pataluc le 02-12-2009 à 11:52:32
n°1946559
MaRTy59
Posté le 02-12-2009 à 11:56:56  profilanswer
 

Oui j'ai bien vu ça, mais bon si je renomme le runall.sql en .bat et que je mets juste des .bat dedans ça ne fonctionne pas non plus, de toute façon je ne peux faire ça.

n°1946585
pataluc
Posté le 02-12-2009 à 13:00:28  profilanswer
 

réexplique ta problématique depuis le début, parce que la on s'embrouille...
 
à la base, dans un script bat, tu voulais lancer via un seul appel à sqlplus plusieurs fichiers sql. du coup tu créé un fichier all.sql qui contient des @ vers les autres...
 
maintenant, que veux tu faire?

n°1946598
MaRTy59
Posté le 02-12-2009 à 13:28:16  profilanswer
 

Maintenant ce que je veux faire c'est à partir d'un fichier .bat il lance tous les fichiers dont j'ai besoin aussi bien des fichiers .sql que des .bat et aussi des commandes sql exec "une_instruction"
A la base mon fichier runall.? doit lancer un fichier sql qui lance plusieurs requêtes, ces requêtes génèrent des fichiers, ensuite les .bat servent à charger ces fichiers dans des tables temporaires et enfin les 3 exec pour mettre à jour une autre base à partir des tables temporaires.
En gros si cela etait possible le fichier runall.(je ne sais pas l'extension) devrait lancer :

Code :
  1. @exp-civichim.sql
  2. @sqlldagt.bat
  3. @sqlldabs.bat
  4. @sqlldenf.bat
  5. exec imp_agt
  6. exec imp_abs
  7. exec imp_enf


n°1946609
pataluc
Posté le 02-12-2009 à 14:02:31  profilanswer
 

tu peux pas. oracle ne sait pas ce qu'est un .bat, il ne l'exécutera pas. par contre rien ne t'empêche de lancer un sqlplus, puis de faire tes traitements de fichiers, puis de lancer un autre sqlplus, etc.
 
en gros si je pars sur ca:

Code :
  1. @exp-civichim.sql
  2. @sqlldagt.bat
  3. @sqlldabs.bat
  4. @sqlldenf.bat
  5. exec imp_agt
  6. exec imp_abs
  7. exec imp_enf


 
ca deviendrait qqchose comme ca:
 
fichier exec_instructions.sql

Code :
  1. exec imp_agt
  2. exec imp_abs
  3. exec imp_enf


 
fichier principal.bat

Code :
  1. SQLPLUS user/pass@basetest @exp-civichim.sql
  2. @sqlldagt.bat
  3. @sqlldabs.bat
  4. @sqlldenf.bat
  5. SQLPLUS user/pass@basetest @exec_instructions.sql


 
 
et la tu lance principal.bat et le tour est joué.
 
il ne faut pas confondre le arobase de @un_script.bat qui permet à dos de ne pas afficher la commande en cours (pour ne pas afficher le echo off ou le lancement d'un sous-script) et le arobase de sqlplus user/pass@basetest @requete.sql qui est la pour dire à sqlplus: ca c'est le fichier de requetes que tu dois me jouer...
 
tu me suis?


Message édité par pataluc le 02-12-2009 à 14:08:41
n°1946664
MaRTy59
Posté le 02-12-2009 à 15:33:04  profilanswer
 

Oui je confondais !
Mais encore un problème, à la fin de la requete exp-civichim.sql, j'ai la main dans la console "SQL>", le problème est que les .bat ne se sont pas lancés ni les exec :(

n°1946684
pataluc
Posté le 02-12-2009 à 16:23:11  profilanswer
 

tu mets un exit dans ton script exp-civichim.sql.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Problème de lancement de batch

 

Sujets relatifs
Probleme, fonction page précédente / suivanteproblème firefox/CSS [RESOLU]
Probleme ajax/javascriptProblème de bannières publicitaires
Problème de gestion de la liaison série RS232 en VHDL(resolu) Problème de positionnement d'un bouton CSS
Problème activation javascriptProblème d'administration avec site professionnel
Problème lien FTPProblème requete SQL : double et différent
Plus de sujets relatifs à : Problème de lancement de batch


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR