Oracle按資料量分批次提交

2021-09-25 03:34:31 字數 1102 閱讀 8991

留備

declare

type cur is ref cursor;

my_cur cur;

col_num scott.emp_test%rowtype;

num number(10);

begin

open my_cur for

select * from scott.emp_test;

loop

fetch my_cur

into col_num;

exit when my_cur%notfound;

num := my_cur%rowcount;

if mod(num, 5000) = 0 then

commit; /*5000條資料提交一次,注意在游標的for迴圈中使用commit如果undo空間較小的話可能會出現ora-01555報錯,原因是commit之後的undo資料允許被覆蓋,此時如果在commit之前有乙個大的、執行時間較長的查詢需要展示undo之前的資料資訊而undo的資料已經被覆蓋就會報ora-01555錯誤,解決方法有多重,可以擴大undo表空間的大小,設定undo為自動管理是最好的解決方法,可同時設定undo_retention*/

sys.dbms_lock.sleep(1); --提交後間斷1秒(純屬測試^_^)

dbms_output.put_line('sleep at ' || num || ' rows');

end if;

insert into scott.emp_2019

(empno, ename, job, mgr, hiredate, sal, comm, deptno)

values

(col_num.empno,

col_num.ename,

col_num.job,

col_num.mgr,

col_num.hiredate,

col_num.sal,

col_num.comm,

col_num.deptno);

end loop;

close my_cur;

commit;

end;

oracle 按每天,每月,每日,年查詢資料量

select from tablename md 按天統計 select to char md.createtime,yyyy mm dd as xx,count md.billmaindataid as 每天運算元量,sum md.naturalamount from tablename md w...

Oracle大資料量遷移

prompt 生成歷史表,使用nologging create table his test nologging as select from test prompt 檢驗新舊表的資料量是否一致 select count 1 from test select count 1 from his tes...

解決get提交資料量太大的問題

由於引數中是base64編碼後的資料,比較大,導致get請求失敗,提示資料太大。get最大是256b,post是2m。解決方式 使用偽post方式 上傳方法 function picupload var ocrimagesrc document.queryselector ocr img child...