0

複数のテーブルで大量の列を返す選択を実行すると、エラー「Vendor code 17002」が表示されます。クエリは 1 つの結果のみを返します。返される列の数が 635 未満の場合、クエリは機能します。別の列が追加されると、エラーが表示されます。

ダンプ ファイルで次のことが確認されました。

Exception [type: ACCESS_VIOLATION, UNABLE_TO_READ] [ADDR:0x45] [PC:0x35797B4, _kkqstcrf()+1342]
DDE: Problem Key 'ORA 7445 [kkqstcrf()+1342]' was flood controlled (0x6) (incident: 10825)
ORA-07445: exception encountered: core dump [kkqstcrf()+1342] [ACCESS_VIOLATION] [ADDR:0x45] [PC:0x35797B4] [UNABLE_TO_READ] []
Dump file c:\app\7609179\diag\rdbms\orcl\orcl\trace\orcl_s001_9928.trc
Thu Feb 07 15:10:56 2013
ORACLE V11.2.0.1.0 - Production vsnsta=0
vsnsql=16 vsnxtr=3
Dumping diagnostics for abrupt exit from ksedmp

Windows 7、Oracle 11.2.0.1.0 Enterprise Edition、SQL Developer、Java アプリケーションと同じ結果。

4

1 に答える 1

1

ORA-07445は、OracleがOSの予期しない動作、つまりバグを通知するために使用する一般的なエラーです。

そのトレースファイルには、いくつかの追加情報が含まれているはずです。

c:\app\7609179\diag\rdbms\orcl\orcl\trace\orcl_s001_9928.trc

あなたはそれを見ましたか?

残念ながら、ORA-07445の性質は、根本的な問題の解決策は通常、プラットフォーム、OS、およびデータベースのバージョンの特定の組み合わせに起因することを意味します。オラクルは診断に関するいくつかのアドバイスを公開していますが、ほとんどのルートはオラクルサポートに電話することにつながります。 詳細をご覧ください

少なくともあなたは直接の原因を知っています。したがって、サポート契約を結んでいない場合は、回避策があります。アプリケーションを変更して、その635番目の列を選択する必要がないようにします。これは、1つのクエリに含まれる非常に多くの列です。

クエリのプロジェクションで許可される列の数に実際の制限はありませんが、ステートメントの全長が制限を超える可能性があります。この制限はいくつかの要因によって異なり、ドキュメントでは指定されていません。その厄介な追加の列がある場合とない場合のステートメントの長さ(文字数)はどれくらいですか?おそらく、いくつかの列名を短くするとうまくいくでしょう。

于 2013-02-08T04:11:58.587 に答える