我们最近将Oracle数据库配置为所谓的native encryption
(Oracle高级安全性选项)。
随着开发的进行,有些SQL
查询有时写得不好,因此JDBC
驱动程序(ojdbc7 v12.1.0.2
)应该返回错误。而不是那样,会引发Checksum Fail IOException
。
所以问题是我们根本没有任何语法或数据库完整性错误。 SQL GUI编辑器中的问题是相同的,例如DBeaver
,SQLDeveloper
或SQuirrel
。
答案 0 :(得分:3)
驱动程序版本12.1及更早版本在SHA-2函数中存在错误 如果能够强制服务器与SHA-1握手
-Doracle.net.crypto_checksum_client=REQUIRED
-Doracle.net.crypto_checksum_types=SHA1
这已在ojdbc8.jar版本12.2中修复
答案 1 :(得分:3)
使用驱动程序ojdbc7 12.1.0.1时,正确的VM参数名称如下:
-Doracle.net.crypto_checksum_client=REQUIRED
-Doracle.net.crypto_checksum_types_client=SHA1
答案 2 :(得分:2)
我们的团队也遇到了同样的问题。
确定将WebLogic连接池设置为使用SHA1或MD5进行校验和加密解决了该问题(当然,还必须将所选值添加到DB服务器的sqlnet.ora文件中的已批准算法列表中)。 / p>
当Oracle尝试返回“标准”错误(即约束违规)时,尝试在客户端使用除SHA1或MD5之外的任何Checksum值会产生Checksum Fail错误消息。
答案 3 :(得分:1)
这是Oracle JDBC瘦驱动程序中的已知问题。如果你可以使用SSL而不是ASO,那么这个问题就会消失。
答案 4 :(得分:0)
**如果您正在将记录插入数据库并看到错误,则
**
Oracle不会为该错误提供正确的信息