假設表PROD_SERV只有一個欄位serv_id,即PROD_SERV(serv_id varchar2(20))。
請撰寫一個PL/SQL塊,向PROD_SERV表插入1到9000的數字,每插入50條記錄提交一次。
回圈插入1到9000的數字我會,但,每插入50條記錄提交一次怎樣寫
uj5u.com熱心網友回復:
-- 有多種寫法,這里給你列出一個來
Connected to Oracle Database 11g Enterprise Edition Release 11.2.0.1.0
Connected as oracle@ORALAB
SQL>
SQL> create table PROD_SERV(serv_id varchar2(20));
Table created
SQL> begin
2 for n in 1..9000 loop
3 insert into prod_serv values(n);
4 if mod(n , 50) = 0 then
5 commit;
6 end if;
7 end loop ;
8 end ;
9 /
PL/SQL procedure successfully completed
SQL> select count(*) as rscount from prod_serv ;
RSCOUNT
----------
9000
SQL> drop table prod_serv purge ;
Table dropped
SQL>
uj5u.com熱心網友回復:
create table PROD_SERV(serv_id varchar2(20));begin
for n in 1..9000 loop
insert into prod_serv values(n);
if mod(n , 50) = 0 then
commit;
end if;
end loop ;
end ;
select count(*) as rscount from prod_serv ;
drop table prod_serv purge ;
uj5u.com熱心網友回復:
oracle可以用commit命令提交,所以只要在回圈中判斷i取余50是否為0然后在commit就行了。uj5u.com熱心網友回復:
定義一個變數。寫一個回圈,到50 就清零然后COMMITuj5u.com熱心網友回復:
版主正解。。uj5u.com熱心網友回復:
bulk collect ... LIMIT 50轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/96359.html
標籤:基礎和管理
