7

Oracle Database 10.2.0.4 のインスタンスが 1 つあります。Spring Framework 3.0.5、休止状態 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.driver.OraclePreparedStatement.setBinaryStream(int, InputStream, long)Oracle JDBC ドライバーを逆コンパイルし、 methodからoracle.jdbc.driver.DBConversionまでのコードをチェックしましたoracle.jdbc.driver.OracleConversionInputStream

このコードがOKと見なされる限り、すべてがOKに見えます:)

この問題を追跡する方法を教えてください... Oracle 側にある可能性があります (?)... 暗黙のキャストを探している可能性があります... この問題に関する既知の Oracle メタリンクの記事を見逃している可能性がありますか?

4

1 に答える 1

4

次のオラクルのバグがエラーの主な原因であると考えています。データベースをアップグレードした後、問題を再度確認し、独自の回答を受け入れます。他の誰かに役立つことを願っています。

ちなみに、プラットフォームも AIX/64x です。

Oracle Bug 9018715 「長い列タイプのない UPDATE および INSERTS で断続的に ORA-1461 が発生する」

タイプ B - 欠陥

製品バージョン 11.1.0.7.0 で修正済み

重大度 2 - サービスの重大な損失

製品バージョン 10.2.0.4.0

ステータス 93 - クローズ済み、ファイラーによる検証なし

プラットフォーム 212 - IBM AIX on POWER Systems (64 ビット)

2009 年 10 月 14 日作成

プラットフォーム バージョン 5.3

201 年 12 月 27 日更新

ベースバグ 該当なし

データベース バージョン 10.2.0.4.0

影響を受けるプラットフォーム 一般

製品ソース オラクル

問題:

ORA-1461: クライアント・アプリケーションでは、LONG列に挿入するためだけにLONG値をバインドできます。

エラーは、insert ステートメントと update ステートメント、およびさまざまなテーブルで見られます。ステートメントのタイプは次のとおりです。 列 (, , ,..) に挿入します。または update set = :1, = :2, = :3,.. = :n where =: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 に答える