Valor SQLPLUS en variable: no funciona desde crontab

Valor SQLPLUS en variable: no funciona desde crontab

Estoy intentando almacenar el valor de sqlplus en una variable en Linux.

El script funciona bien cuando se activa manualmente. Pero el valor de la variable no se almacena cuando se llama al script desde crontab.

Código:

#!/bin/ksh
~/.profile
v=`sqlplus -s <<!
<<DB details>>
select sysdate from dual;
!
`
echo "$v"

Respuesta1

Ejecutar sqlplusdesde una entrada de crontab puede resultar frustrante. Obtiene una variable PATH muy escasa ya que el shell que crondse bifurca no lee el archivo "rc".

En su archivo ".profile", ¿configura ORACLE_HOME? ¿Incluye $ORACLE_HOME/bin en PATH y exporta ORACLE_HOME y PATH? Comprueba eso primero. Además, debo tener en cuenta que su código muestra el kshen cuestión.ejecutandonoabastecimientoel ~/.profilearchivo. Su script debería "obtener" ese archivo. También parece que tengo una superstición acerca de configurar y exportar TNS_ADMIN, así:

export TNS_ADMIN=$ORACLE_HOME/network/admin

Puede incluir el ID de usuario y la contraseña de la base de datos en el "documento aquí" utilizando la /nologopción de sqlpluspara evitar mostrar esos detalles a cualquiera que ejecute 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

información relacionada