ORA-28040:没有匹配的身份验证协议:Oracle 12c升级 [英] ORA-28040: No matching authentication protocol : Oracle 12c Upgrade
问题描述
我们已经将Oracle数据库从11g迁移到了12c. 我们有一个在Java 1.5中运行并使用ojdbc14.jar的旧版应用程序.
We have migrated our Oracle database to 12c from 11g. We have a legacy application running in Java 1.5 and using ojdbc14.jar.
我们的应用程序无法创建与数据库的错误连接:
Our application is not able to create connection to database error saying :
java.sql.SQLException: ORA-28040: No matching authentication protocol
我拒绝回答 ORA-28040:无匹配的身份验证协议异常,并尝试将我的ojdbc14.jar升级到ojdbc6.jar.
I reffered to answer ORA-28040: No matching authentication protocol exception, and tried to upgrade my ojdbc14.jar to ojdbc6.jar.
我现在有一条不同的错误消息:
I now have a different error message saying :
error: OracleCallableStatement is not public in oracle.jdbc.driver; cannot be accessed from outside package
import oracle.jdbc.driver.OracleCallableStatement;
^
error: OracleTypes is not public in oracle.jdbc.driver; cannot be accessed from outside package
cstmt.registerOutParameter(3,oracle.jdbc.driver.OracleTypes.CURSOR);
^
Ant构建文件:
<javac srcdir="${src}" destdir="${classes}" source="1.5" target="1.5">
<classpath refid="cpath" />
</javac>
不确定如何使应用程序正常工作.
Not sure what exactly we should do to get the application working.
推荐答案
最近我在2个不同的应用程序中遇到了相同的错误:
I had the same error with 2 different applications recently:
- 使用odbc6.jar和Oracle 12 c数据库的Tomcat 7上的Java 7应用程序.
- 具有Oracle 12 c数据库的旧式ASP应用程序.
与您引用的帖子相同-对我们来说效果很好.
The second solution mentioned in the same post you referred to - worked well for us.
解决方法:在oracle/network/admin/sqlnet.ora文件中设置SQLNET.ALLOWED_LOGON_VERSION = 8.
Workaround: Set SQLNET.ALLOWED_LOGON_VERSION=8 in the oracle/network/admin/sqlnet.ora file.
我们与DBA一起在数据库服务器上的sqlnet.ora上设置了上述选项.这解决了我们的问题.我希望它能对某人有所帮助.
We worked with our DBAs to set the above option on the sqlnet.ora on the database server. This resolved our issue. I hope it helps someone.
这篇关于ORA-28040:没有匹配的身份验证协议:Oracle 12c升级的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!