我的系统环境是win7的,本地数据库是oracle10g,客户端是oracle11g的,今天在使用sqlplus / as sysdba 的时候忽然报错ORA-12560: TNS: 协议适配器错误,但是我通过PL/SQL developer 连接却能连接上,经过检查,各项配置都没有问题,这是为啥?那位大神解答下?
我来答
分享
举报浏览 12965 次
2个回答
最佳答案![]()
TSS1989tour
来自百度知道认证团队 2018-04-05
ORA-12505:
之前用PL/SQL DEVELOPER和SQLPLUS 登录数据库都没有问题,就是应用程序通过JDBC连接Oracle时无法成功连接。
经过查找,发现Oracle的service_name 和sid_name不一致,而PL/SQL DEVELOPER和SQLPLUS 采用service_name进行连接,而应用程序是按照sid_name进行连接,所以出现PL/SQL DEVELOPER和SQLPLUS 能够连接而应用程序却无法连接的问题。
解决问题很简单,原来是自己将sid_name搞错了;首先查找当前实例的sid_name:SELECT INSTANCE_NAME FROM V$INSTANCE,然后把得到的sid_name填入应用程序的连接串中。
1.知道你的SID名:可以再注册表中查找,也可以通过借助Oracle的sqlplus工具并以管理员方式连接敲命令查看:select instance_name from v$instance;必须是管理员身份,否则“视图不存在”。
2.在Oracle SQL Developer连接工具上修改你的数据库SID名。
3.勾选“保存命令”,“角色”选择数据库管理员。
4.点击“保存”和“测试”,并连接,剩下的就是连接成功了。
本文详细解析了在使用SQLPlus连接Oracle数据库时遇到的ORA-12560错误,揭示了service_name与sid_name不一致导致的连接问题,并提供了具体的解决步骤,包括如何正确查找和设置sid_name。





1万+

被折叠的 条评论
为什么被折叠?



