私は Web を検索してきましたが、どこでも同じ例を見て驚いており、常に all_objects です。高度な SQL が得意ではないため、このステートメントを変換して BULK_COLLECT を使用する方法がわかりません。
INSERT INTO bpm_staging (
id, pay_obj, merchant, address,
city, country,debit_num, first_name,
state, zip, id_type,bank_no)
SELECT
p.account_obj, p.id, p.ach, pc.address,
pc.city, pc.country, pc.debit_num, pc.name,
pc.state, pc.zip, p.id_type,pc.bank_no
FROM au_pay_t p, au_pay_dd_t pc
WHERE p.id= pc.obj;
カーソルを使用すると時間がかかるため、上記のステートメントを使用しました。また、選択を使用すると、クエリを変更する必要がある人にとって理解しやすくなります。
しかし、私の DBA は、行ごとに 540K レコードを挿入するには時間がかかるため、本番環境での実行を拒否しました。
Web を検索すると、パフォーマンスに関する限り、BULK_COLLECT /FORALL の方が優れたオプションであることがわかりました。
より良い回避策を提案してください。BULK_COLLECT が適切なオプションである場合は、この種の適切な例を提案してください。