我正在尝试使用此连接格式连接到公司数据库
sqlplus user/pass@url:1521/dbname
我正在接受
ORA-12514: TNS:listener does not currently know of service requested in connect descriptor
这与我用Toad连接数据库并查询数据库时使用的连接字符串相同。我做错了什么?
答案 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
中。