Script sql dans un crontab

bonjours tout le monde
j'ai besoin de generer des etats quotidienne su ma base de donnee oracle su redhat, alors j'ai creer un script sql qui fait la tache normalement on l'executon manuellement mais lorsque je le mais dans un crontab ca marche pas.j'ai su que le probleme peut du aux variable d'envirenement mais je ne sait pas exactement comment le faire.
si vous pouvez m'aider je serait ravi
merci

4 réponses

  1. Est-ce que tu pourrais nous donner la ligne de commande faite dans crontab?
    0
    1. mon crontab est le suivant :
      0 15 * * * /test/script.sql
      avec script contient les lignes suivants:
      sqlplus -s user/password@database<<SQLEND
      set PAGESIZE 0
      set linesize 132
      set heading off
      set feed off
      set echo off
      set trimspool on
      select count(*) from table1
      where...
      exit
      SQLEND.
      je vous rappel que ce script marche normallement lorsque je l'execute manuellement
      merci
      1
      1. 0 15 * * * /test/script.sql

        A mon avis il faut mettre le path cpomplet de ton script, genre:

        0 15 * * * /ton_path/test/script.sql
        0
    2. merci hssissen de votre aide
      mais /test/script.sql est le path complet
      j'ai trouver la solution c'est de rajouter les variable d'environnement dans le script car le crontab ne s'execute pas forcement avec votre profile
      j'ai ajouter les ligne suivants et ca marche parfaitements :
      ORACLE_HOME=/pathcomplet
      export ORACLE_HOME
      /usr/pathcomplet/bin/sqlplus -s user/password@database<<SQLEND

      merci encore
      0
      1. Bonjour,

        Je te conseil de faire un script ksh qui lui sera en cront pour exécuter ton .sql exemple :

        #!/bin/ksh

        sqlplus -s $login/$password@$base << FIN 2>&1
        @script.sql ;
        exit;
        FIN

        crontab :

        0 15 * * * /test/script.ksh
        0