Skip to Main Content

Oracle Database Discussions

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

ORA-12154: TNS:could not resolve the connect identifier specified (sqlplus)

689836Mar 9 2009 — edited Mar 12 2009
Hi All,

I don't know if this has ever been posted, but since I've spent a week figuring it out (no joke, a week), I thought I would post it so that no one else has to waste this much time.

"ORA-12154: TNS:could not resolve the connect identifier specified" from what I've seen on this site is a major problem for a lot of people, but I did not find a reference to my specfic problem.

FYI--
My Database is called "ordidm"
userID: SYSMAN
password: p@ssw0rd

My specific issue was the following:


I can....

- Connect to the database via the client "admin assstant" GUI in Windows while supplying the userID and password using the "Database Authentication".
- Connect via sqlplus as "/as sysdba"
- "tnsping oraidm" passes works just fine.

I CANNOT....

- connect to oraidm at the dos prompt by using sqlplus, regardless of whether or not I supply all the user authentiocation information and db name on one line, or...if I just type "sqlplus" at the command prompt and then enter the userID and password when prompted. Every time I get the "ORA-12154: TNS:could not resolve the connect identifier specified" error message.

Ready for this?? (some may have guessed this already) The problem is the "@" in my password. After looking closely at the trace logs, I noticed that one of the entries was...


---------------------------------------------------------------------------------------------
[09-MAR-2009 08:23:12:921] nnftrne: Original name: ssw0rd
---------------------------------------------------------------------------------------------

Remember that the format for connecting on one line at the dos prompt is

C:/> sqlplus SYSMAN/p@ssw0rd oraidm

or you can do the following...


C:\Documents and Settings\Administrator.WIN2K3>sqlplus

SQL*Plus: Release 10.2.0.1.0 - Production on Mon Mar 9 09:08:50 2009

Copyright (c) 1982, 2005, Oracle. All rights reserved.

Enter user-name: scott
Enter password:

Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

SQL>

(BTW-I just started using the "scott" ID because from what I understand, changing the SYSMAN userID password is kind of a pain. Figured just using "scott" ID would be easier to test)

So of course what it's doing is counting everything after the first "@" as the database name...which of course it can't find in the tnsnames.ora file. Also, contrary to some other posts I found here and there, enclosing the userID and/or passowrd in quotes does not do any good. Apparently, even when using the 2nd method...in the background, the end result is it must pass the whole thing as one long string much like in the 1st method (as you will get the same truncated "Original Name" of "ssw0rd" in the log)

So...the question is, why does Oracle even allow "@" in the password if it will become an issue with sqlplus??? Also, if you can't (or shouldn't) use it, why isn't it documented somewhere? At the least I would expect the installer to at least warn you ahead of time that an "@" is not suggested. I don't remember it being there. Maybe it's just me and I'm just missing this info somewhere

I sincerely hope this saves someone else a week of their life. ;-)

-Eric
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Apr 9 2009
Added on Mar 9 2009
4 comments
2,444 views