关于这个问题,测试了很多方案,终于成功,现提供如下排查思路:
1、首先排查oci.dll不一致(navicat for oracle与oracle版本不一致)问题,这个操作必须进行。
将OCI library(oci.dll)目录填写成已安装的oracle目录下的地址(例如我的:C:\app\luohaiyuan\product\11.2.0\dbhome_1\BIN\oci.dll)
然后,将SQL *Plus目录换成已安装的oracle目录下的C:\app\luohaiyuan\product\11.2.0\dbhome_1\BIN,如图:
2、如果此方式仍不能解决,需进行如下操作,修改C:\app\luohaiyuan\product\11.2.0\dbhome_1\NETWORK\ADMIN(供参考)目录下listener.ora文件
注释掉(PROGRAM = extproc)(前边加“#”)
DEFAULT_SERVICE_LISTENER= (ORCL)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = orcl) #网络上的服务名称
(ORACLE_HOME =G:\oracle\product\10.2.0\db_1) # 这里一定要配置正确
# (PROGRAM = extproc)
)
)
把这句话注释掉重启监听服务就好了。
extproc是一个扩展的程序调用接口协议, 连接和调用外部的操作系统程序或进程用时会用到。