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

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [shell][scripting][SGBD] lancer des requettes SQL via scripts....

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[shell][scripting][SGBD] lancer des requettes SQL via scripts....

n°397457
francoisp
Posté le 28-01-2004 à 12:22:26  profilanswer
 

bonjour suites aux conseil donnés dans la section programmation/SGBD je cros-post ici puisque peut etre certains d'entre vous pourront me conseiller...
 
http://forum.hardware.fr/forum2.ph [...] warefr.inc
 
faut pas crossposter d'habitude mais j'ai eut pour seule reponse voir sur OSA, et ça fait pas mal de jours que la question est posée....  
 
alors moderateurs soyez comprehenssifs...merci  :jap:


---------------
If everything else failed then read the instructions
mood
Publicité
Posté le 28-01-2004 à 12:22:26  profilanswer
 

n°397513
black_lord
Modérateur
Truth speaks from peacefulness
Posté le 28-01-2004 à 13:46:52  profilanswer
 

tu devrait essayer de faire ça :
duplique ton script SQL vers un équivalent. ex : mop.sql devient mop.sql.tmp
tu fais un sed pour remplacer tes occurences de $var1 par $1, $var2 par $2 etc
 
et tu passes le tmp en paramètres au lieu de l'original
 
contrainte : ton nombre de var est limité :(

n°397516
arsunik
ma tuxitude me beastifie
Posté le 28-01-2004 à 13:50:44  profilanswer
 

Hmm, c'est vraiment pas beau tout ça. Le mieux ça serait de faire un script perl.
Il existe un module perl pour se connecter aux bases mysql.
Pour postgre, je suppose qu'il doit y en avoir un aussi.

n°397517
arghbis
salops de dauphins
Posté le 28-01-2004 à 13:52:09  profilanswer
 

ouaip, pour postgres y'a un module et il est très simple à utiliser!

n°397521
francoisp
Posté le 28-01-2004 à 13:56:04  profilanswer
 

comment ça ?
 
toto.sh --->
 
...
...
toiiii.sql foo
....
 
truc comme ça ?
ou foo est $1 dans le fichier .sql ???


---------------
If everything else failed then read the instructions
n°397531
francoisp
Posté le 28-01-2004 à 14:04:37  profilanswer
 

bon ben ça marche pas de toute façon...
 
la seule autre solution provisoire trouvée est de faire  

$ psql  -v rr1=tutu -qf toto.sql test
tutu

ou rr1 est le nom de variable...  
 
mais là encore ça resoud pas le probleme c'est qu'une autre façon toute aussi barbare et malpropre de faire...


---------------
If everything else failed then read the instructions
n°397532
black_lord
Modérateur
Truth speaks from peacefulness
Posté le 28-01-2004 à 14:04:56  profilanswer
 

ArSuniK a écrit :

Hmm, c'est vraiment pas beau tout ça. Le mieux ça serait de faire un script perl.
Il existe un module perl pour se connecter aux bases mysql.
Pour postgre, je suppose qu'il doit y en avoir un aussi.
 


 
je fais pas de perl :D
mais c'est clair que ce que j'ai prposé c'est ue solution de goret :D

n°397534
francoisp
Posté le 28-01-2004 à 14:08:22  profilanswer
 

ArSuniK a écrit :

Hmm, c'est vraiment pas beau tout ça. Le mieux ça serait de faire un script perl.
Il existe un module perl pour se connecter aux bases mysql.
Pour postgre, je suppose qu'il doit y en avoir un aussi.
 


 
certes mais perl je m'en tapes... j'ai dit shell (du moins pour cette question)...
 
 :pt1cable:  
 
je ne peux pas utiliser perl il faut que n'importe qui (même debutants donc shell obligatoirement) puisse comprendre les liens entre les shells les sql et les fichiers generés ...
 
deplus j'ai jamais vu une production scriptée utiliser autrechose que du shell avec du SQL derierre...
 


---------------
If everything else failed then read the instructions
n°397538
francoisp
Posté le 28-01-2004 à 14:21:55  profilanswer
 

exemple complet qui fonctionne
 


$ psql  -v rr1=tutu -qf toto.sql  test 2> toto.err 1> toto.lis
 
/c/SECURITE/db_tests
$ ll
total 2.0k
-rw-r--r--    1 T unknown        28 Jan 28 14:00 toto.sql
-rw-r--r--    1 T unknown         5 Jan 28  2004 toto.lis
-rw-r--r--    1 T unknown         0 Jan 28  2004 toto.err


 
mon fichier lis contient bien la chaine généré par la variable rr1
 
mais le principe est la  
 

  • un batch se lance et lance conditionnellement sur date sur fichier sur variable etc... des sql  
  • les historiques partent en fichier lis
  • les erreurs partent en fichier err
  • les codes retours sont parties des confitions testes par les batch (shell-scripts)
  • quand il est fini le suivant de la chaine de jobs et ainsi de suite en fonction des retours...


exemple


cas 1:
job1--->sql1--->sql2--->disons que sql1 echoue alors job4 se lance
cas 2:
job1--->sql1--->sql2--->disons que sql2 echoue alors job5 se lance
cas 3:
job1--->sql1--->sql2--->job2--->job3 quand tout se passe bien
et un mail est envoyé directement à qui de droit


 
d'où l'interet de trouver une solution efficace pour les passages de variables... et pour la rediraction des resultats...
 
toutes les solutions que j'utilise actuellement fonctionne je que je cherche c'est une façon plus propre....
tout en ne gardant que du standard et donc forcement shell et pl/sql ou SQL pur...


Message édité par francoisp le 28-01-2004 à 14:23:34

---------------
If everything else failed then read the instructions

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [shell][scripting][SGBD] lancer des requettes SQL via scripts....

 

Sujets relatifs
(debian sid) impossible de lancer xmmslancer vnc à partir de xp pour avoir knoppix
Faire du lancer de pingouinTomcat ne veut pas se lancer sur le port 80
Quel logiciel de dev pour programmer un SGBD pour linux ?Impossible de lancer x (newbie)
[shell] récupérer le contenu de la wildcard sans faire de boucle?[newbie] comment lancer un fichier sh ou perl depuis Konqueror ?
[Debian] Impossible de lancer OpenOfficeCréer des utilisateurs linux depuis un fichier shell
Plus de sujets relatifs à : [shell][scripting][SGBD] lancer des requettes SQL via scripts....


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