This content has been marked as final. Show 2 replies
1) Check the tnsnames.ora file you are using, verify that it is accessible.
Eg: On Unix:
- Check if you have a $HOME/.tnsnames.ora file - This will be
used in addition to 'tnsnames.ora'.
- Check TNS_ADMIN is set in your environment.
- There is a readable tnsnames.ora file in $TNS_ADMIN
2) Ensure that the tnsnames.ora file contains a line of the form
'alias=(...)' for the alias you are specifying.
Aliases are NOT case sensitive.
3) Make sure that there are no mismatched parentheses in the
4) Even if TNS_ADMIN is set SQL*Net looks in other locations for
configuration files. Check the default directories for old (or bad)
copies of TNS_NAMES.ORA. Eg: /etc, /var/opt/oracle,
5) Check the default domain name being used, and the path used to
locate aliases, in the SQLNET.ORA file.
The default domain is specified in the NAMES.DEFAULT_DOMAIN
parameter - this is appended to the alias specified in the
connect string if there is no domain given.
Eg: If NAMES.DEFAULT_DOMAIN=mydom.uk
and a connect to "scott/tiger@mydb" is requested
SQL*Net will look for the alias "mydb.mydom.uk"
If NAMES.DIRECTORY_PATH is also specified this determines where
SQL*Net looks for the alias expansion.
6) If none of these show an error enable client side tracing
at level 16 and see what has been written to the client trace
file. There list of aliases in the trace file under the heading
'TNS.NAMES.ORA TABLE HAS THE FOLLOWING CONTENTS'.
7) If ORA-12154 is returned when selecting over a database link from a
client check that the alias in the link can be resolved in the
tnsnames.ora file ON THE SERVER.
8) If you are connecting from a login dialog box, verify that you are
not placing an "@" symbol before your connect net service name.
9) When going from Windows to Linux/Unix platforms,
you can see <carriage return> <new line> characters at the
end of each line instead of <new line> <new line>. Be sure you
use ascii mode when ftp'ing this between Windows and Linux/Unix.