2013-05-01 99 views
0

我试图用这个连接格式无法连接到Oracle数据库在Ubuntu

sqlplus user/[email protected]:1521/dbname

连接到公司的DB和我越来越

ORA-12514: TNS:listener does not currently know of service requested in connect descriptor

这是我用来连接到数据库与蟾蜍和查询数据库相同的连接字符串。我究竟做错了什么?

+0

is port == 1521? – 2013-05-01 15:06:52

+0

yessir,我只是把格式放在隐藏我公司的信息。现在将编辑。 – 2013-05-01 15:09:15

+0

试试'user/pwd @ // url:1521/servicename' – 2013-05-01 15:11:02

回答

0

Easy Connect格式只接受服务名称而不接受SID。从documentation

这种命名方法提供了 数据库外的现成的TCP/IP连接。它通过 使客户端延伸主机命名方法的功能,与可选的端口 和服务名的同时连接到数据库服务器的数据库的主机名:

CONNECT [email protected][//]host[:port][/[service_name][:server]][/instance_name]] 
Enter password: password 

的连接标识符转换为以下连接描述符:

(DESCRIPTION= 
    (ADDRESS=(PROTOCOL=tcp)(HOST=host)(PORT=port)) 
    (CONNECT_DATA= 
    (SERVICE_NAME=service_name) 
    (SERVER=server) 
    (INSTANCE_NAME=instance_name))) 

如果dbname在原来的企图表示SID,那么你就需要找出服务名代替。你可以从服务器上的lsnrctl servicesselect value from v$parameter where name = 'service_names'(如果你有权限),或者从SQL * Plus中获得show parameter service_names,但是如果你无法连接到SQL * Plus,那么这对你没有任何帮助。蟾蜍正在使用TNS别名,那么它可能已经在您的tnsnames.ora