|
■No32137 (こあら さん) に返信 >>ORA-24381 DML配列のエラー > > 「insert文が失敗している」のですから、配列の中身、あるいはinsert処理に問題があるのだと思います。 > # PK重複、テーブル領域やロールバックセグメントのオーバーフローなど。
ありがとうございます。
配列中に PK 重複になるようなデータが含まれるのであれば、OracleException.Errors にそのエラーが入ってくると思います。 今回はそれがありませんので、PK 重複ではないと思っています。 「テーブル領域やロールバックセグメントのオーバーフロー」であるかどうかは、どのように調べればよいのでしょうか。
なお、
SELECT AVG(NVL(VSIZE(列1),1)) + AVG(NVL(VSIZE(列2),1)) + AVG(NVL(VSIZE(列3),1)) + … FROM テーブル
という SQL を走らせてみますと、1レコードのサイズは約 107 バイト程度のようです。 これが 302,400 件ですと、31,784 KB ほどになります。 これに対して、表領域は 1,500,000 KB 以上の空きがありますが、ロールバックセグメントは最大で 384KB、うち 98% ほどが使用済みでした。 ただ、お恥ずかしながら DB 音痴のため、ロールバックセグメントのサイズが適切なのかどうかわかりません。 よろしければご教示願えませんでしょうか。
|