TNS_ADMIN le dice a sqlplus dónde encontrar el archivo tnsnames.ora.
Si está ejecutando sqlplus desde un crontab, la razón normal para tener dificultades es:
- Ruta incorrecta
- No tener el ORACLE_SID configurado correctamente u otra información de conexión de Oracle
- Un script de inicio/inicio de sesión que se ejecuta cuando inicia sesión en el sistema que interfiere con la ejecución de su cron
- Alguna secuencia de comandos que ejecuta desde la línea de comando cuando inicia sesión que configura su entorno de Oracle que no se ejecuta en su crontab.
Compruebe estas cosas y otros elementos relacionados con el medio ambiente. Siempre me toma varias pasadas lograr que crontab y Oracle funcionen juntos felizmente.