PLSQL學習-【3迴圈結構】
分批提交例子:
declare cursor cu_emp is select * from emp1; begin for v_cu in cu_emp loop if v_cu.ename = \'haha\' then delete from emp where empno=v_cu.empno; end if; if mod(cu_emp%rowcount,1000)=0 then dbms_output.put_line(cu_emp%rowcount); commit; end if; end loop; -- commit; end; / PL/SQL procedure successfully completed.
CLERK部門的員工,津貼變成200:
10:32:59 SQL> declare 10:33:11 2 cursor cu_emp is select * from emp; 10:33:23 3 begin 10:33:24 4 for i in cu_emp loop 10:33:35 5 if i.job='CLERK' then 10:33:51 6 update emp set comm = 200 where empno = i.empno; 10:34:11 7 end if; 10:34:19 8 end loop; 10:34:24 9 --commit; 10:34:30 10 end; 10:34:32 11 /
declare cursor cu_emp is select * from emp; begin for i in cu_emp loop if i.job = 'CLERK' then update emp set comm = 200 where empno = i.empno; elsif i.job = 'SALESMAN' then --日語錢包:saiif 發音很像 update emp set comm = 1000 where empno = i.empno; end if; end loop; end; /
第一次執行時間102s:
第二次執行耗時很短:
三種迴圈:
loop:
declare i number; begin i:=1; loop insert into emp(empno,ename) values(i,'YAO' || i); i:=i+1; exit when i > 2000; end loop; commit; end;
while:
declare i number; begin i:=3000; while i<=6000 loop insert into emp(empno,ename) values(i,\'YAO\' || i); i:=i+1; end loop; commit; end;
for迴圈:
declare begin for i in 8004..9999 loop insert into emp(empno,ename) values (i,'LOU'); end loop; commit; end; /
迴圈巢狀:
列印9 9 乘法表
12:59:19 SQL> declare 12:59:26 2 begin 12:59:29 3 for i in 1..9 loop 12:59:38 4 for j in 1..9 loop 12:59:54 5 dbms_output.put_line(i||'*'||j ||'='||i*j); 13:01:33 6 end loop; 13:01:42 7 end loop; 13:01:46 8 end; 13:01:49 9 / set serveroutput on
迴圈退出:
declare begin <> --標籤 for i in 1..9 loop < > for j in 1..9 loop exit outer when j > 5; dbms_output.put_line(i||'*'||j||'='||i*j); end loop; end loop; end;
直接調到外層:
declare
begin
<>
for i in 1..9 loop
<>
for j in 1..9 loop
exit outer when j > 5;
dbms_output.put_line(i||\'*\'||j||\'=\'||i*j);
end loop;
end loop;
end;
1*1=1
1*2=2
1*3=3
1*4=4
1*5=5
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29990276/viewspace-1339263/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 條件分支與迴圈結構學習
- Swift學習筆記(二十五)——迴圈結構Swift筆記
- 迴圈結構for
- 迴圈結構
- 學java16迴圈結構Java
- 資料結構學習(C++)——迴圈連結串列 (轉)資料結構C++
- 3.迴圈結構程式設計程式設計
- 05迴圈結構
- py迴圈結構
- C語言——迴圈結構(for迴圈,while迴圈,do-while迴圈)C語言While
- 迴圈結構程式設計之習題程式設計
- plsql--迴圈討論SQL
- Java入門學習-學習if & else,for迴圈,foreach迴圈,while迴圈的用法。JavaWhile
- Python學習筆記-基礎篇(10)-選擇結構與迴圈結構Python筆記
- 學習Rust 迴圈Rust
- 資料結構——迴圈佇列PTA習題資料結構佇列
- python分支結構與迴圈結構Python
- C語言學習【3】——判斷與迴圈C語言
- 資料結構學習(C++)——遞迴【2】(3) (轉)資料結構C++遞迴
- 資料結構學習(C++)——遞迴【3】(1) (轉)資料結構C++遞迴
- 資料結構學習(C++)——遞迴【3】(2) (轉)資料結構C++遞迴
- Python迴圈結構用法Python
- php分支和迴圈結構PHP
- 6、迴圈結構語句
- 迴圈結構程式設計程式設計
- python3 筆記9.程式流程結構--迴圈結構(while,for)Python筆記While
- Python3學習筆記4 , 迴圈、模組Python筆記
- 雲端計算學習路線原始碼框架筆記:while迴圈結構原始碼框架筆記While
- PLSQL Language Referenc-PL/SQL控制語句-迴圈語句-FOR迴圈-FOR迴圈中的索引SQL索引
- PLSQL Language Referenc-PL/SQL控制語句-迴圈語句-FOR迴圈SQL
- 「學習筆記」迴圈、列表筆記
- Clojure語法學習-迴圈
- java學習之while迴圈JavaWhile
- C++中的迴圈結構C++
- JavaScript(二):選擇、迴圈結構JavaScript
- 4.Python——迴圈結構Python
- 第5周 5.2 迴圈結構
- Python(二):選擇結構與迴圈結構Python