大きなデータ ファイル (~ 10 GB) の読み込み中に ORA-00054 が発生します。このエラーは、前のファイルの後に新しいファイルが読み込まれたときに発生します。これを解決する方法はありますか?
4 に答える
考えられるシナリオの 1 つ。
これはダイレクト パス ロードですか? その場合は、v$locked_object ビューをチェックして、ロード中に誰かによってロックされていないか確認してください。
select dbao.object_name
from v$locked_object vlo,
dba_objects dbao
where vlo.object_id = dbao.object_id
and dbao.object_name = 'Table that you are trying to load...'
http://download.oracle.com/docs/cd/B10500_01/server.920/a96524/c21dlins.htmの Oracle ドキュメントから
ダイレクト・パス INSERT でのロックに関する考慮事項
ダイレクト・パス INSERT 中、Oracle は表 (またはパーティション化された表のすべてのパーティション) で排他ロックを取得します。その結果、ユーザーはテーブルに対して同時挿入、更新、または削除操作を実行できず、同時インデックス作成および構築操作は許可されません。ただし、同時クエリはサポートされていますが、クエリは挿入操作前の情報のみを返します。
ORA-00054 は通常、ALTER ステートメントの実行時に表示されるため、これはテーブルスペースのデータファイル サイズ、テーブル サイズに関連している可能性があります。
私はここにいるふりをしません。
それらのビューを確認してください。
DBA_BLOCKERS – 待機中のロックを保持している非待機セッションを表示します
DBA_DDL_LOCKS – 保持または要求されているすべての DDL ロックを表示します
DBA_DML_LOCKS - 保持または要求されているすべての DML ロックを表示します
DBA_LOCK_INTERNAL – ロックまたはラッチが保持されているか、ロックを保持しているユーザーのユーザー名で要求されるたびに 1 行を表示します。
DBA_LOCKS - 保持または要求されているすべてのロックまたはラッチを表示します
DBA_WAITERS - 待機中だが、ロックを待機していないすべてのセッションを表示します
テーブルがロックされているようです: ORA-00054 Oracle ドライバーが BLOB タイプを処理する方法が原因である可能性があります (ドライバーはレコードをロックし、バイナリ データを書き込むためにストリームを開き、レコードを解放するには「何らかのヘルプ」が必要です) )。次の手順を試してみます。
- 最初のファイルをロードする
- 専念;
- 2 番目のファイルをロードする