oracle Loop迴圈示例

2022-09-01 18:54:13 字數 2379 閱讀 6288

--loop迴圈用法 (輸出1到10)  

declare v_num number(2) := 0;

begin

loop

v_num := v_num + 1;

exit when v_num > 10;

--上面退出迴圈也可以用下面3行

/*if(v_num > 9) then

exit;

end if;

*/dbms_output.put_line(v_num);

end loop;

end;

--while

loop迴圈用法 (輸出1到10)

declare v_num number(2) := 0;

begin

while v_num < 10loop

v_num := v_num + 1;

dbms_output.put_line(v_num);

end loop;

end;

--for

loop迴圈用法1 (輸出1到10)

declare v_num number(2) := 99;

begin

for v_n in 1.. v_num loop

exit when v_n > 10;

dbms_output.put_line(v_n);

end loop;

end;

--for

loop迴圈用法2 (輸出某個表的序號、列資料)

begin

forv_n in(select amount,rownum from tmp) loop

dbms_output.put_line(v_n.rownum || ' , ' ||v_n.amount);

end loop;

end;

---個迴圈列印某個月日曆例子

declare v_days number(2);

v_firstday number(2);

v_result varchar2(4000);

v_d varchar(100);

v_month date;

begin

v_month := to_date('20170301','yyyymmdd');

v_result := to_char(v_month,'yyyy') || '年' || to_char(v_month,'mm') || '月' || chr(10) || '日 一 二 三 四 五 六' || chr(10);

select to_char(last_day(v_month), 'dd') into v_days from dual;--當月多少天

select to_char(trunc(v_month, 'mm'),'d') into v_firstday from dual;--當月第1天是星期幾:1-7

--1號所在星期幾的之前每一天補3個空格

for v_week in 1 .. v_firstday - 1loop

exit when v_firstday

< 2;

v_result := v_result || ' ';

end loop;

for v_date in 1.. v_days loop

v_d :=v_date;

if(length(v_date) = 1) then

v_d := ' '||v_date ;

end

if;

v_result := v_result || v_d || ' ';

if(mod(v_date + v_firstday, 7) = 1) then

v_result := v_result || ' ' || chr(10);

end

if;

end loop;

dbms_output.put_line(v_result);

end;

/*執行結果:

2023年03月

日 一 二 三 四 五 六

1 2 3 4

5 6 7 8 9 10 11

12 13 14 15 16 17 18

19 20 21 22 23 24 25

26 27 28 29 30 31

*/

Oracle LOOP迴圈控制語句

在pl sql中可以使用loop語句對資料進行迴圈處理,利用該語句可以迴圈執行指定的語句序列。常用的loop迴圈語句包含3種形式 基本的loop while.loop和for.loop。loop語句的基本語法結構如下 loop statement.end loop label name 語法說明 l...

Oracle loop迴圈無法插入資料

以下的測試基於scott使用者下的emp表 首先用while迴圈進行測試,向emp表插入999條資料 1 declare 2 i emp.empno type 1 3begin 4while i 1000 5loop 6insert into emp empno,ename,sal values i...

迴圈題型分析示例

需求描述 假設乙個簡單的atm機的取款過程為 首先提示使用者輸入密碼 password 假設預設密碼為111111,最多只能輸入3次,超過3次則提示使用者 密碼錯誤,請取卡 結束交易。如果使用者密碼正確,再提示使用者選擇金額 amount 請輸入0到6中任意數字選擇對應錢數 0 手動輸入金額,1 1...