テーブルの現金残高を計算し、それらを別のテーブルに挿入しようとしています。年の各日付の残高を計算し、それを残高テーブルに挿入するループがあります。
問題は、この sql にほぼ 30 分かかることです。
declare
d_i number :=1
begin
loop
insert into my_cash_table
select
portfolio ,
book_name, position_type, currency, cash_balance_cad
from
cash_balance cb
-- plus bunch of code here
...
where bal_date in &sdate + d_i
group by book_name, position_type, currency;
d_i := d_i + 1;
if d_i > 366 then
exit;
end if;
end loop;
end;
ループ内のすべてのデータを取得してから一括挿入できるように最適化する方法はありますか? また、ループ内で単純に select ステートメントを実行することはできますか?つまり、挿入を行わずに実行できますか?
ありがとうございました