views:

598

answers:

1

Hi All,

Please tell me what is the use of TNS_ADMIN parameter in Oracle? I am working on Unix using oracle database.

Is this parameter is required to locate the sqlplus. I am executing a script in which a update query is executed on Oracle Database.

The script fails with 127 error code when executed with crontab.

The script contents I suspect (eval) failing are

----------
cmd='sqlplus ${ORALOGIN} < SQLS
----------
eval $cmd
+6  A: 

TNS_ADMIN tells sqlplus where to find the tnsnames.ora file.

If you are running sqlplus from a crontab then the normal reason for having difficulty are:

  1. Incorrect path
  2. Not having the correctly set ORACLE_SID or other Oraacle connection information
  3. A startup/login script that is getting executed when you login to the system that is interfering with your cron execution
  4. Some script that you run from the command line when you login that sets up your Oracle environment that is not getting executed in your crontab.

Check these things and other environment related items. It always takes me a number of passes to get crontab and Oracle to work happily together.

Philip Schlump
Apart from these, what is the purpose of TNS_ADMIN?
Sachin Chourasiya
As Philip said at the start "TNS_ADMIN tells sqlplus where to find the tnsnames.ora file." That's basically it! Or do you want to know what the tnsnames.ora file is for?
Tony Andrews
The default location for Net8 configuration files is $ORACLE_HOME/network/admin. You can override that using the TNS_ADMIN environment variable, to specify a directory where Oracle will find the sqlnet.ora file.
spencer7593