Executar sqlplus
de uma entrada crontab pode ser frustrante. Você obtém uma variável PATH muito esparsa, pois o shell que crond
forks não lê o arquivo "rc".
No seu arquivo ".profile" você define ORACLE_HOME? Você inclui $ ORACLE_HOME / bin no PATH e exporta ORACLE_HOME e PATH? Verifique isso primeiro. Além disso, devo observar que seu código mostra o ksh
em questão executando não terceirizando o arquivo ~/.profile
. Seu script deve "fonte" desse arquivo. Eu também pareço ter uma superstição sobre como configurar e exportar TNS_ADMIN, assim:
export TNS_ADMIN=$ORACLE_HOME/network/admin
Você pode incluir o ID do usuário e a senha do banco de dados no "documento here" usando a opção /nolog
de sqlplus
para evitar que os detalhes sejam exibidos para quem executar ps
:
sqlplus -s /nolog 2>&1 << END_ZERO_ROW_CHECK
connect $USER_NAME/$PASSWORD@$SID_INSTANCE
whenever oserror exit failure
whenever sqlerror exit failure
...
END_ZERO_ROW_CHECK