Sql et unix

david -  
 herbert -
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

4 réponses

  1. herbert
     
    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
  2. herbert
     
    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
  3. herbert
     
    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
  4. herbert
     
    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