技术人员反馈, 客户端原来delphi 开发的数据同步组件无法连接数据库,总是提示sid错误,反复确认后,对方坚持提供的sid 号没有问题, 改用 java 版本的 同步组件仍然无法连接数据库,报 err=12505 。
推荐思路
端口通(telnet), 连接出现问题,并且提示sid 错误,说明已经建立通讯,反复确认后, oracle10g 本地客户端配置连接也出现问题,即可判定版本问题, 要及时和客户确认服务器端数据库的版本。 与客户确认后,发现数据库已经升级到 oracle 19c
对于新出现的问题, 一定要到原厂网站查找资料,最快速、准确。
1、由于delphi7 版本使用的是odac 直连的oracle 数据库版本, 由于兼容性差,不再做改进。
2、更新java 版本更新程序,需要更新jdbc 驱动, 到官网下载最新版本的jdbc 驱动
https://www.oracle.com/database/technologies/appdev/jdbc-downloads.html
下载 ojdbc8-full.tar.gz版本的 ,jdk1.8 需要 odjbc8.jar 和 orai18n.jar(字符集转换) 连个包。
编译后,测试连oracle 10g, 11g 没有问题, 连oracle19c 出现url 格式无效问题, 参考oracle 的文档,修改成为新格式后,正确连接oracle 数据库。
https://docs.oracle.com/en/database/oracle/oracle-database/21/jajdb/
修改使用, jdbc:oracle:thin:@tcp://mydbhost:1521/mydbservice 问题解决。