重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
Oracle中有三種循環(For、While、Loop):
成都創新互聯公司是一家集網站建設,金堂縣企業網站建設,金堂縣品牌網站建設,網站定制,金堂縣網站建設報價,網絡營銷,網絡優化,金堂縣網站推廣為一體的創新建站企業,幫助傳統企業提升企業形象加強企業競爭力。可充分滿足這一群體相比中小企業更為豐富、高端、多元的互聯網需求。同時我們時刻保持專業、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們為更多的企業打造出實用型網站。
1、loop循環:
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循環:
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循環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循環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;
你想要的這幾個結果,都可以直接使用SQL語句查出,無需循環。
Oracle循環實在PLSQL塊中編寫:關鍵字for XXX loop 循環體 end loop;
Oracle中的 “CONNECT BY”是層次查詢子句,一般用于樹狀或者層次結果集的查詢。你這樣子連接,會形成你前面的對應條件跟“CONNECT BY”后面的條件進行不斷匹配,從而造成死循環。如果你需要再加并列條件,建議用and來連接。
一、GOTO循環用法
DECLARE
x number;
BEGIN
x := 9;
repeat_loop --循環點
x := x - 1;
dbms_output.put_line(x);
IF x 0 THEN
? ? GOTO repeat_loop;? --當x的值0時,就goto到repeat_loop
END IF;
END;
/*以上語句翻譯如下:
declare 定義變量;
begin...end語句塊
x 變量賦值
repeat_loop 設置循環點
循環內容
? ? x 變量遞減
? ? 按行打印 x
IF...END IF語句塊
? ? IF...(條件) THEN :滿足IF條件? 則
? ? GOTO語句 前往循環點
*/
二、FOR循環用法
DECLARE
x number;
BEGIN
FOR i in 2..10 LOOP
? ? dbms_output.put_line(i);
END LOOP;
END;
--最簡單的循環?
/*
declare 定義變量
begin...end語句塊
for...loop...end loop; 語句
*/
三、WHILE循環用法
DECLARE
x number;
BEGIN
x :=5;
WHILE x 1 LOOP
? ? x := x - 1;
? ? dbms_output.put_line('循環內'||x);
END LOOP;
dbms_output.put_line('循環外'||x);
END;
/*
declare 定義變量
begin...end 語句塊
while...loop...end loop; 語句
*/
四、LOOP循環用法
DECLARE
x number;
BEGIN
x :=0;
LOOP
? ? ? x := x + 1;
? ? ? EXIT WHEN x 9; --這里有個";"號
? ? ? dbms_output.put_line('內'||x);
END LOOP;
dbms_output.put_line('外'||x);
END;
/*
declare 定義變量
begin...end
x 變量賦值
loop...end loop語句
? ? exit when ...(條件) ;
*/