Sql et unix

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

  • Votes
  • Date
  • Date décroissante
  1. 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....
    1. 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
      1. 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
        1. 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