TNS_ADMIN indique à sqlplus où trouver le fichier tnsnames.ora.
Si vous exécutez sqlplus à partir d'un crontab, la raison normale des difficultés est :
- Chemin incorrect
- Ne pas avoir correctement défini ORACLE_SID ou d'autres informations de connexion Oracle
- Un script de démarrage/de connexion qui s'exécute lorsque vous vous connectez au système qui interfère avec votre exécution cron
- Certains scripts que vous exécutez à partir de la ligne de commande lorsque vous vous connectez et qui configurent votre environnement Oracle ne sont pas exécutés dans votre crontab.
Vérifiez ces choses et d'autres éléments liés à l'environnement. Il me faut toujours plusieurs passages pour que crontab et Oracle fonctionnent bien ensemble.