环境:
jdk:jdk1.5.0_04
数据库:oracle 12c
因为jdk版本过低,无法使用ojdbc6.jar等连接12c的jar。只能使用老版本的ojdbc14.jar去连接数据。
使用老版本ojdbc14.jar去连接12c时会报:ORA-28040: No matching authentication protocol
解决办法:
连接url必须使用新版本的jdbc:oracle:thin:@//ip:port/testdb 格式,jdbc驱动包还是使用原来的ojdbc14.jar
修改数据库的$ORACLE_HOME/network/admin/sqlnet.ora文件,没有这个文件自己手动创建一个,设置SQLNET.ALLOWED_LOGON_VERSION=8
使用前确保该参数生效。
参考:http://blog.csdn.net/kongxx/article/details/44887379
http://www.oracle.com/technetwork/database/features/jdbc/jdbc-drivers-12c-download-1958347.html
http://www.oracle.com/technetwork/database/focus-areas/application-development/index-099369.html
http://www.oracle.com/technetwork/database/enterprise-edition/jdbc-faq-090281.html#01_02
http://docs.oracle.com/cd/B28359_01/network.111/b28317/sqlnet.htm#BIIEAFHA