--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...