我正在尝试通过sql developer连接到远程服务器上的oracle db . 我将连接细节复制到tnsnames,我可以连接到db .
但是,我有另一个db应用程序,它与sqldeveloper相同,当我尝试 Build 连接时,我不断收到此错误 . 此应用程序使用oracle jdbc瘦客户端,它需要主机名和SID .
我收到以下错误:
java.sql.SQLException:监听器拒绝连接时出现以下错误:ORA-12505,TNS:listener当前不知道连接描述符中给出的SID
在排除故障时,我更改了sqldeveloper中的tns选项,我选择了基本选项来找出问题所在,我意识到由于服务名称正确而无法通过SID连接到数据库,我能够连接到它甚至通过sqldeveloper命名 .
我已经使用了一些数据库查询来查找SID名称,但我仍然遇到同样的错误 . 请帮我排除故障 .
谢谢你的时间..
2 回答
ORA-12505表示您的客户端传递了服务器端的侦听器根本无法识别的SID .
在10G及以上您可以使用EZ connect而无需像这样配置服务器端:
(要么)
如果您仍想使用tnsnames.ora,请尝试从客户端运行tnsping SID .
在LINUX上,您还可以让ORACLE从本地路径读取tnsnames.ora文件 - 只需将TNS_ADMIN设置为tnsnames.ora文件所在的目录即可 .
否则,您需要在客户端的$ ORACLE_HOME / network / admin中配置tnsnames.ora
如果您需要知道数据库SID,请使用:
从dual中选择sys_context('userenv','db_name');
看到这个网址:
Checking oracle sid and database name
我也面临着这个问题 . Linux与oracle
11.2.0.1.
我发现连接字符串必须是:
并不是