使用(Easy Connect)在Ubuntu上使用SQLPLUS无法连接到oracle DB

时间:2013-05-01 15:04:48

标签: oracle ubuntu sqlplus

我正在尝试使用此连接格式连接到公司数据库

sqlplus user/pass@url:1521/dbname

我正在接受

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

这与我用Toad连接数据库并查询数据库时使用的连接字符串相同。我做错了什么?

1 个答案:

答案 0 :(得分:0)

Easy Connect格式仅接受服务名称,而不接受SID。来自documentation

  

此命名方法提供开箱即用的TCP / IP连接   数据库。它扩展了主机命名方法的功能   使客户端能够使用可选端口连接到数据库服务器   和服务名称以及数据库的主机名:

CONNECT username@[//]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 services获得,或者select value from v$parameter where name = 'service_names'(如果你有权限),或者从SQL * Plus获得show parameter service_names,但是如果你真的对你没有帮助无法连接到SQL * Plus ...如果Toad使用的是TNS别名,那么它也可能已经在您的tnsnames.ora中。