7

我有一个 Oracle Database 10.2.0.4 实例。我有基于 spring 框架 3.0.5、hibernate 3.5.6 的 java 应用程序。我有一个带有 BLOB 列 ( blobContent BLOB) 的表和一个带有java.sql.Blob字段的实体(在休眠 XML 映射中映射为<property name="blobContent" type="blob"/>)。我使用Oracle10gDialect。

我得到 ORA-01461 定期尝试在此表中插入行。我尝试了几个 Oracle JDBC 驱动程序(10.2.0.4、10.2.0.5 和 11.2.0.3),但都没有成功。我在谷歌上搜索和搜索这个问题的金属链接数据库失败了。我反编译了 Oracle JDBC 驱动程序并检查了从方法oracle.jdbc.driver.OraclePreparedStatement.setBinaryStream(int, InputStream, long)thru oracle.jdbc.driver.DBConversionuntil开始的代码oracle.jdbc.driver.OracleConversionInputStream

就这段代码可以认为是好的而言,一切看起来都很好:)

请告知如何跟踪此问题...可能在 Oracle 方面(?)...可能正在寻找一些隐式转换...可能我错过了一些关于此问题的已知 Oracle metalink 文章?

4

1 回答 1

4

我认为跟随 oracle 错误是我的错误的主要原因。升级数据库后,我将再次检查问题并接受我自己的答案。我希望它对其他人有用。

顺便说一下,我们的平台也是 AIX/64x。

Oracle 错误 9018715“更新和插入时出现间歇性 ORA-1461,没有长列类型”

B 型 - 缺陷

已在产品版本 11.1.0.7.0 中修复

严重性 2 - 严重失去服务

产品版本 10.2.0.4.0

状态 93 - 已关闭,未由 Filer 验证

平台 212 - POWER 系统上的 IBM AIX(64 位)

创建于 2009 年 10 月 14 日

平台版本 5.3

201 年 12 月 27 日更新

基本错误 不适用

数据库版本 10.2.0.4.0

影响平台通用

产品来源甲骨文

问题:

ORA-1461: 只能绑定 LONG 值,以便在客户端应用程序中频繁接收插入到 LONG 列中。

该错误出现在插入和更新语句以及不同的表中。语句属于这种类型: 插入列 (, , ,..) 值 (:1, :2, :3, ...:n);或更新集 = :1, = :2, = :3,.. = :n 其中 =:m; 并且没有一列是 lONG 类型的。

诊断分析:

将 rdbms 从 10.2.0.3 升级到 10.2.0.4 后,错误开始出现。它经常发生,并且在不同的表上。一旦发生错误,重新执行相同的 sql 通常会成功。

数据库字符集:WE8ISO8859P15。Windows 客户端。NLS 设置:NLS_LANG=American_America.WE8ISO8859P15。

应用程序通过 Jdbc 瘦驱动程序版本 10.2.0.1 连接。使用 jdbc 驱动程序版本 10.1.0.5 进行的测试也失败了。

于 2013-04-11T10:57:09.513 回答