Shell-Umgebung ist für Oracle sehr wichtig und bei der Verwendung von Cron fast nicht vorhanden. Wie immer gibt es mehrere Möglichkeiten, dies zu lösen.
- vollqualifizierte Pfade verwenden - etwas unflexibel
- das Skript erstellen, um seine eigene Ausführungsumgebung einzurichten
- die Ausführungsumgebung in cron einrichten, wenn das Skript aufgerufen wird.
Ein ziemlich normaler Weg, Ihre Umgebung aus dem Skript heraus einzurichten, ist die Verwendung des oraenv-Skripts, das sich normalerweise in /usr/local/bin
befindetORACLE_SID={your_sid}
ORAENV_ASK=NO
type oraenv >/dev/null 2>&1 || PATH=/usr/local/bin:$PATH
. oraenv
SQLPATH=$HOME/sql
export SQLPATH
do your stuff
aus der Cron-Zeile:
10 10 * * * $HOME/.profile;$HOME/bin/your_script >$HOME/log/your_script.log 2>&1
Dies setzt voraus, dass das .profile nicht interaktiv ist und die benötigte Umgebung exportiert.