我正在尝试通过sql developer连接到远程服务器上的oracle db.我将连接细节复制到tnsnames,我可以连接到db.
但是,我有另一个db应用程序,它与sqldeveloper相同,当我尝试建立连接时,我不断收到此错误.此应用程序使用oracle jdbc瘦客户端,它需要主机名和SID.
我收到以下错误:
java.sql.sqlException:Listener拒绝连接时出现以下错误:
ORA-12505,TNS:监听器当前不知道连接描述符中给出的SID
在排除故障时,我更改了sqldeveloper中的tns选项,我选择了基本选项来找出问题所在,我意识到由于服务名称正确而无法通过SID连接到数据库,我能够连接到它甚至通过sqldeveloper命名.
我已经使用了一些数据库查询来查找SID名称,但我仍然遇到同样的错误.请帮我排除故障.
谢谢你的时间..
解决方法
ORA-12505表示您的客户端传递了服务器端侦听器的SID
根本不认识.
根本不认识.
在10G及以上您可以在不配置服务器端的情况下使用EZ连接
像这样:
sqlplus hr@liverpool:1521/DEMO hr is the user name liverpool is the server name 1521 is the port the listener for the DB is listening on DEMO is the database SID
(要么)
如果您仍想使用tnsnames.ora,请尝试从客户端运行tnsping SID.
在LINUX上,您还可以让ORACLE从本地读取tnsnames.ora文件
path – 只需将TNS_ADMIN设置为tnsnames.ora文件所在的目录.
否则,您需要在$ORACLE_HOME / network / admin中配置tnsnames.ora
在客户端上
如果您需要知道数据库SID,请使用:
从dual中选择sys_context(‘userenv’,’db_name’);
看到这个网址: