Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

ORA-12514

5 views
Skip to first unread message

martin_i...@yahoo.com

unread,
Jul 8, 2008, 6:29:07 AM7/8/08
to
Hello,
I am trying to get a unix user (not the oracle user) to connect to a
database on the same server.
ORACLE_SID is correctly set to REPORT in the environment.
sqlplus username/password works just fine
sqlplus username/password@REPORT
kicks out a ORA-12514: TNS:listener does not currently know of
service requested in connect
descriptor

I dont understand why appending the SID to username/password acts
differently from referencing the SID in the environment.
Also I am not clear if I should set TNS_ADMIN to point to the
tnsnames.ora dir of whether it is better to rely on it being in
$ORACLE_HOME/network/admin <sigh>

TIA

Martin

martin_i...@yahoo.com

unread,
Jul 8, 2008, 6:59:02 AM7/8/08
to
Hello,
Have a 10g database on Solaris.
Need to connect with an ordinary unix user ie not oracle.
can connect with
sqlplus username/password
with the ORACLE_SID set in environment
But if I append the SID like so:
sqlplus username/password@REPORT
I get "ORA-12514: TNS:listener does not currently know of service
requested in connect
descriptor"
Why the difference?
BTW I have an application which builds a connect string like
"username/password@REPORT".
Also not quite sure if it good practice to define TNS_ADMIN or just
rely on putting tnsnames.ora in $ORACLE_HOME/network/admin.

TIA

Martin

sybr...@hccnet.nl

unread,
Jul 8, 2008, 10:17:04 AM7/8/08
to
On Tue, 8 Jul 2008 03:59:02 -0700 (PDT), martin_i...@yahoo.com
wrote:

This doesn't use tnsnames.ora

ora-12514.
in your tnsnames.ora you have
connect_data=((host=)(protocol=tcp)(port=xxx)(*service_name=<whatever>*)

<whatever> should be equal to the service_name initialization
parameter, and this should have been registered with the listener.
Check this out by using lsnrctl services.
If it has't been registered, issue
alter system register
in sqlplus.
The listener needs to start before the database, in order to make
registration possible.

Best practice is
move tnsnames.ora, listener.ora and sqlnet.ora to /var/opt/oracle.
This is a version independent directory.
set TNS_ADMIN to /var/opt/oracle.

--
Sybrand Bakker
Senior Oracle DBA

martin_i...@yahoo.com

unread,
Jul 9, 2008, 11:43:49 AM7/9/08
to
On 8 Jul, 15:17, sybra...@hccnet.nl wrote:
> On Tue, 8 Jul 2008 03:59:02 -0700 (PDT), martin_ian_le...@yahoo.com
> Senior Oracle DBA- Hide quoted text -
>
> - Show quoted text -
Great answer - just what I need to know - thanks a lot!

0 new messages