私のpl/sqlプロシージャでは1700万行を収集しようとしていますが、エラーで失敗しますORA-04030: 16328バイト(KOH-kghuコール、pmuccst:ADT /レコード)割り当てる数百万行のBULK COLLECTに関する問題 - プロセスメモリ不足
TYPE rc_test IS RECORD(
ROWID VARCHAR2(200),
contact_id VARCHAR2(200),
last_name VARCHAR2(200),
first_name VARCHAR2(200),
phone VARCHAR2(200),
email VARCHAR2(200),
birth_day date,
address_id VARCHAR2(200),
seq NUMBER,
NEWID NUMBER);
TYPE rctype
IS TABLE OF RC_TEST;
rcrecords RCTYPE;
BEGIN
SELECT ROWID,
contact_id,
last_name,
first_name,
phone,
email,
birth_day,
address_id,
seq,
NEWID
bulk collect INTO rcrecords
FROM HR.TMP_TBL_SEQ a
order by last_name, first_name, seq;
FOR i IN 1..rcrecords.count LOOP
から< < >> エンドループと、
数百または数千の行のサンプルデータで正常に動作しますが、数百万行は使用できません。
私はこのエラーのトラブルシューティングを読んだことがありますが、そのほとんどはチューニングを行うDBAによって行われています。問題を解決する可能性のあるRAMを増やすようアドバイスしますが、コード自体のロジックを変更します。
上記のタイプのコードでロジックを改善して、メモリ不足エラーを取り除く良い方法がありますか?
私のコードで使用されているテーブルレコードの代わりに、誰でも私に代替コードを提供できますか?
多くのありがとうございます。