一、GOTO循環(huán)用法
為鳳臺(tái)等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及鳳臺(tái)網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、成都外貿(mào)網(wǎng)站建設(shè)、鳳臺(tái)網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
DECLARE
x number;
BEGIN
x := 9;
repeat_loop --循環(huán)點(diǎn)
x := x - 1;
dbms_output.put_line(x);
IF x 0 THEN
? ? GOTO repeat_loop;? --當(dāng)x的值0時(shí),就goto到repeat_loop
END IF;
END;
/*以上語(yǔ)句翻譯如下:
declare 定義變量;
begin...end語(yǔ)句塊
x 變量賦值
repeat_loop 設(shè)置循環(huán)點(diǎn)
循環(huán)內(nèi)容
? ? x 變量遞減
? ? 按行打印 x
IF...END IF語(yǔ)句塊
? ? IF...(條件) THEN :滿足IF條件? 則
? ? GOTO語(yǔ)句 前往循環(huán)點(diǎn)
*/
二、FOR循環(huán)用法
DECLARE
x number;
BEGIN
FOR i in 2..10 LOOP
? ? dbms_output.put_line(i);
END LOOP;
END;
--最簡(jiǎn)單的循環(huán)?
/*
declare 定義變量
begin...end語(yǔ)句塊
for...loop...end loop; 語(yǔ)句
*/
三、WHILE循環(huán)用法
DECLARE
x number;
BEGIN
x :=5;
WHILE x 1 LOOP
? ? x := x - 1;
? ? dbms_output.put_line('循環(huán)內(nèi)'||x);
END LOOP;
dbms_output.put_line('循環(huán)外'||x);
END;
/*
declare 定義變量
begin...end 語(yǔ)句塊
while...loop...end loop; 語(yǔ)句
*/
四、LOOP循環(huán)用法
DECLARE
x number;
BEGIN
x :=0;
LOOP
? ? ? x := x + 1;
? ? ? EXIT WHEN x 9; --這里有個(gè)";"號(hào)
? ? ? dbms_output.put_line('內(nèi)'||x);
END LOOP;
dbms_output.put_line('外'||x);
END;
/*
declare 定義變量
begin...end
x 變量賦值
loop...end loop語(yǔ)句
? ? exit when ...(條件) ;
*/
你想要的這幾個(gè)結(jié)果,都可以直接使用SQL語(yǔ)句查出,無(wú)需循環(huán)。
Oracle循環(huán)實(shí)在PLSQL塊中編寫:關(guān)鍵字for XXX loop 循環(huán)體 end loop;
這樣使用的:
for
xx
in
(select
語(yǔ)句)
這是隱式游標(biāo),這個(gè)結(jié)構(gòu)中不能帶參數(shù),或者說(shuō)普通的游標(biāo),隱式或顯式的都不能帶參數(shù),使用參數(shù)游標(biāo)或引用(動(dòng)態(tài))游標(biāo)。
例如:
declare
cursor cur(C_value number) is select col_A,col_B from tableA where col_C=C_value
;
begin
for xx in cur loop
--處理
end loop;
end
擴(kuò)展資料:
注意事項(xiàng)
使用for循環(huán)實(shí)現(xiàn)
declare
cursor
cur
is
select
*
from
tablename;
aw_row
tablename%rowtype;
begin
for
raw_row
in
cur
loop
dbms_output.put_line('test');
end
loop;
end;
for語(yǔ)句直接幫做了游標(biāo)的打開(kāi)關(guān)閉,以及判斷工作,所以比較常用。
舉例回答:
案例:
--For?循環(huán)游標(biāo)
--(1)定義游標(biāo)
--(2)定義游標(biāo)變量
--(3)使用for循環(huán)來(lái)使用這個(gè)游標(biāo)
declare
--類型定義
cursor?c_job
is
select?empno,ename,job,sal
from?emp
where?job='MANAGER';
--定義一個(gè)游標(biāo)變量v_cinfo?c_emp%ROWTYPE?,該類型為游標(biāo)c_emp中的一行數(shù)據(jù)類型
c_row?c_job%rowtype;
begin
for?c_row?in?c_job?loop
dbms_output.put_line(c_row.empno||'-'||c_row.ename||'-'||c_row.job||'-'||c_row.sal);
end?loop;
end;
begin
for?v_rlt?in?1..1000?loop
dbms_output.put_line('v_rlt?=?'||v_rlt);
end?loop;
dbms_output.put_line('FOR循環(huán)已經(jīng)結(jié)束!');
end;
Oracle中有三種循環(huán)(For、While、Loop):
1、loop循環(huán):
create?or?replace?procedure?pro_test_loop?is
i?number;
begin
i:=0;
loop
i:=i+1;
dbms_output.put_line(i);
if?i5?then
exit;
end?if;
end?loop;
end?pro_test_loop;
2、while循環(huán):
create?or?replace?procedure?pro_test_loop??is
i?number;
begin
i:=0;
while?i5?loop
i:=i+1;
dbms_output.put_line(i);
end?loop;
end?pro_test_loop;
3、for循環(huán)1:
create?or?replace?procedure?pro_test_for?is
i?number;
begin
i:=0;
for?i?in?1..5?loop
dbms_output.put_line(i);
end?loop;
end?pro_test_for;
4、for循環(huán)2:
create?or?replace?procedure?pro_test_cursor?is
userRow?t_user%rowtype;
cursor?userRows?is
select?*?from?t_user;
begin
for?userRow?in?userRows?loop
dbms_output.put_line(userRow.Id||','||userRow.Name||','||userRows%rowcount);
end?loop;
end?pro_test_cursor;