Sql et unix

Fermé
david - 12 déc. 2003 à 12:30
 herbert - 12 déc. 2003 à 16:42
bonjour,
j'ai 2 pb, le premier est que je ne sais pas comment faire pour integrer une requete SQL dans un script unix et le dexième est que ce resultat je voudrait qu'il aille dans un fichier
merci d'avance
A voir également:

4 réponses

exemples :

oracle....

#!/bin/sh
....
sqlplus toto/truc@script
....

script contient une ligne SPOOL /tmp/fichier de log par exemple...


postgresql

#!/bin/sh
....
psql -c "select * from toto where titi < 14;" base
....



==============

les deux methodes fonctionnent aussi bien sous oracle que postgresql puisque le langage de surcouche est PL/SQL dans les deux cas....
0
voila un exemple concret :


............
else
if [ $P2 = '1' -o $P2 = '2' -o $P2 = '3' -o $P2 = '4' -o $P2 = '5' ]
then
loader sqlplus -s %%CIMIX @$GPSQL/UGM539RM.sql $P1 $P2
car1=`cat $USER_SQL/UGM539RM.lis|awk '{print substr($1,1,1)}'`
if [ $car1 = '1' ]
then
echo 'MISE A JOUR EFFECTUEE'
else
echo 'NUMERO DE DI INEXISTANTE'
.....................




cat UGM539RM.sql
SET TERM OFF
SET VERIFY OFF
SET ECHO OFF
SPOOL $USER_SQL/UGM539RM.lis

UPDATE DI
SET URG = '&2'
WHERE DI = &1;

spool off
COMMIT;

exit


donc le UGM539RM.lis est le log obtenu
0
le .lis pourrait alors ressembler à


TOTO 0 1,352 2,294 10,000
TOTO 0 0 21,611 0
TOTO-TITI*RURU 0 0 8,480 10,000
0
ou encore plus simplement si tu veux juste faire un SQL tout con
sous postgres pour te montrer un autre exemple :


psql -c "select som(sommes) from compte where date < '12/12/2003' and compte='compte courrant';" comptabilite_perso > /var/log/solde.log
0