lingkungan shell sangat penting untuk Oracle dan hampir tidak ada saat menggunakan cron. Seperti biasa, ada beberapa cara untuk menyelesaikannya.
- gunakan jalur yang memenuhi syarat - agak tidak fleksibel
- buat skrip untuk menyiapkan lingkungan eksekusinya sendiri
- siapkan lingkungan eksekusi di cron, saat memanggil skrip.
Cara yang cukup standar untuk mengatur lingkungan Anda dari dalam skrip adalah dengan menggunakan skrip oraenv, biasanya terletak di /usr/local/bin
ORACLE_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
dari baris cron:
10 10 * * * $HOME/.profile;$HOME/bin/your_script >$HOME/log/your_script.log 2>&1
Ini mengasumsikan bahwa .profile tidak interaktif dan mengekspor lingkungan yang diperlukan.