之前学习Oracle数据库时,遇到了一个闹心的问题,身边也有众多好友遇到同样的问题,所以我决定把这个问题写出来~
首先给大家展示一下这个问题
sqldeveloperundefinederror
上面显示的是用SQL Developer连接Oracle数据库时,总是提示IO 错误:Undefined Error,就是连接不上!!!

分析安装流程

  • 本机系统:Windows10(保持更新)
  • 下载:(全部为官网下载)
    Oracle数据库(Oracle Database Express Edition 11g)
    JDK(Java SE)
    SQL Developer(SQL Developer-17.2.0.188.1159)
  • 安装:
    Oracle数据库安装选项全部默认,默认路径,密码设置为123;
    JDK选择了安装Java SE 8u144 版本(当时的最新版),路径等设置全部默认
    配置Java环境变量
    SQL Developer不需要安装,直接打开使用
  • 使用:
    打开SQL Developer,选择Java路径,进入SQL Developer软件界面
    新建连接
    连接名:sys
    用户名:sys
    密码:123
    角色:SYSDBA

    连接名:sys
    用户名:sys
    密码:123
    角色:SYSDBA
    其他默认 其他默认

  • 点击测试,出现“IO 错误:Undefined Error”

查找解决办法

通过百度、谷歌等搜索引擎查找,发现遇到同样问题的人不少,下面给出的答案却很少(还有的就是瞎xx答,答非所问),靠谱的说法大致分为以下几种:

  • 检查监听服务是否打开
  • 把localhost改为127.0.0.1,或者本机网络IP
  • 检查端口是否正确
  • 检查防火墙
  • 修改C:\oraclexe\app\oracle\product\11.2.0\server\network\ADMIN目录下配置文件(listener.ora和tnsnames.ora),或者根据配置文件里的host和port填写
  • 修改SID,或者填写服务名
  • 等······

解决问题过程

  • 上述方法经过测试,全部阵亡~
  • 在别人电脑上测试,多个电脑直接成功(同样安装包与流程,都是win10系统)
  • 回到自己电脑继续折腾,自己试了很多骚操作,再次全部阵亡~
  • 因为Oracle版本为老师要求的,没有更改;JDK也没有更换;换低版本SQL Developer,阵亡~
  • 将本机系统账号权限提高,继续阵亡~
  • 启用win10真正的Administrator账号,切换到administrator账号下,成功!!!
  • 再次切换回自己账户,阵亡~
  • 不想为了一个软件,每次都切换账户,选择重装系统!!!
  • 重装系统后,再次操作,竟然还不行,还是同样错误;然后再次重装系统,这次竟然谜一般的正常了
  • 注:两次重装系统后安装的Oracle、JDK、SQL Developer全部和重装前为同样的安装包,操作一样!!!
  • 分析:同样的资源与操作,在不同电脑上,成功与失败都有;同样的资源与操作,在同一个电脑上重装两次系统才成功!只能理解为抽风!

另一种骚操作(意外得知的一个方法)

因为再次帮别人装Oracle,又遇到同样问题~
然而,同学告诉我,重新下载一个低版本SQL Developer,给解决了!!!
经过测试,竟然真的解决了···
这次,我用的是SQL Developer-4.1.2.20.64
但是,我之前也用过低版本的SQL Developer,当时的测试是不行的,可能,我测试的版本还不够低吧!
目前可以公开的情报:最新版SQL Developer能不能成功连接Oracle,看运气!低版本SQL Developer很大几率可以成功连接Oracle!
我这篇教程发出后,有人给具体检查了一下,原因是新版SQL Developer其中的几个jar包与安装的较新的jdk不兼容。
看来,因为官网给的始终是最新版SQL Developer,让很多人遇到了这种问题~
好吧,认栽!

总结

SQL Developer连接Oracle出现“IO 错误:Undefined Error”
目前最靠谱的两个方法:
1. 使用低版本的SQL Developer,这里分享一个sqldeveloper-4.1.2.20.64-x64给大家
链接:http://pan.baidu.com/s/1hrJoJKo 密码:a86q
2. 重装系统!(这个有点搞笑成分,不推荐):joy:


我与杀戮之中盛放,一如黎明中的花朵!