日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

oracle 循环语句总结(breakcontinue)

發(fā)布時間:2024/4/17 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle 循环语句总结(breakcontinue) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

?http://www.crossyou.cn/oracle-loop-statement-summary.htm

主要有以下五種循環(huán):Exit When、Loop、While、For(普通循環(huán))、For(游標(biāo)循環(huán)),下面舉例一一說明(均為存儲過程)。


1、Exit When循環(huán):

源碼復(fù)制打印關(guān)于
  • create?or?replace?procedure?proc_test_exit_when?is??
  • i?number; ??
  • begin??
  • i:=0; ??
  • LOOP ??
  • Exit?When(i>5); ??
  • Dbms_Output.put_line(i); ??
  • i:=i+1; ??
  • END?LOOP; ??
  • end?proc_test_exit_when;??
  • create or replace procedure proc_test_exit_when is i number; begin i:=0; LOOP Exit When(i>5); Dbms_Output.put_line(i); i:=i+1; END LOOP; end proc_test_exit_when;

    2、Loop循環(huán):

    源碼復(fù)制打印關(guān)于
  • create?or?replace?procedure?proc_test_loop?is??
  • i?number; ??
  • begin??
  • i:=0; ??
  • loop ??
  • i:=i+1; ??
  • dbms_output.put_line(i); ??
  • if?i>5?then??
  • exit; ??
  • end?if; ??
  • end?loop; ??
  • end?proc_test_loop;??
  • create or replace procedure proc_test_loop is i number; begin i:=0; loop i:=i+1; dbms_output.put_line(i); if i>5 then exit; end if; end loop; end proc_test_loop;

    3、While循環(huán):

    源碼復(fù)制打印關(guān)于
  • create?or?replace?procedure?proc_test_while?is??
  • i?number; ??
  • begin??
  • i:=0; ??
  • while?i<5?loop ??
  • i:=i+1; ??
  • dbms_output.put_line(i); ??
  • end?loop; ??
  • end?proc_test_while;??
  • create or replace procedure proc_test_while is i number; begin i:=0; while i<5 loop i:=i+1; dbms_output.put_line(i); end loop; end proc_test_while;

    4、For普通循環(huán):

    源碼復(fù)制打印關(guān)于
  • create?or?replace?procedure?proc_test_for?is??
  • i?number; ??
  • begin??
  • i:=0; ??
  • for?i?in?1..5?loop ??
  • dbms_output.put_line(i); ??
  • end?loop; ??
  • end?proc_test_for;??
  • create or replace procedure proc_test_for is i number; begin i:=0; for i in 1..5 loop dbms_output.put_line(i); end loop; end proc_test_for;

    5、For游標(biāo)循環(huán):

    源碼復(fù)制打印關(guān)于
  • create?or?replace?procedure?proc_test_cursor?is??
  • userRow?test%rowtype; ??
  • cursor?userRows?is??
  • select?*?from?test; ??
  • begin??
  • for?userRow?in?userRows?loop ??
  • dbms_output.put_line(userRow.id||','||userRow.Name||','||userRows%rowcount); ??
  • end?loop; ??
  • end?proc_test_cursor;??
  • create or replace procedure proc_test_cursor is userRow test%rowtype; cursor userRows is select * from test; begin for userRow in userRows loop dbms_output.put_line(userRow.id||','||userRow.Name||','||userRows%rowcount); end loop; end proc_test_cursor;

    上面所示為存儲過程相應(yīng)代碼,你可以通過如下方式進(jìn)行測試:

    進(jìn)入pl/sql, 執(zhí)行 文件->新建->程序窗口->空白,拷貝以上各段代碼,到pl/sql空白窗口中,安F8執(zhí)行編譯。

    再 執(zhí)行 文件->新建->命令窗口 進(jìn)入命令窗口 執(zhí)行一下??set serveroutput on 這句代碼,然后,輸入exec 相應(yīng)存儲過程,ok。

    第5中循環(huán) 要求新建一個名為test的表 字段 id、name,插入幾條數(shù)據(jù),進(jìn)行測試即可。

    ?========

    http://q-wong.iteye.com/blog/502823

    不能。無break和continue的語法。 ?
    ? break可用exit代替。 ?
    ? loop ?
    ? ? ? ... ?
    ? ? ? exit ? when ? ...; ?
    ? ? ? ... ?
    ? end ? loop; ? ? ?
    ? continue和用自定義異常代替。 ?
    ? loop ?
    ? ? ? begin ?
    ? ? ? ? ? ... ?
    ? ? ? ? ? raise ? my_ex; ?
    ? ? ? ? ? ... ?
    ? ? ? exception ?
    ? ? ? ? ? when ? others ? then ? null; ?
    ? ? ? end; ?
    ? end ? loop;??

    ?exit when是跳出整個循環(huán),不是跳出本輪循環(huán)。相當(dāng)于C的break。

    BEGIN
    <<OUTER>>
    FOR I IN 1 .. 10 LOOP
    <<INNER>>
    FOR??J IN 1..20 LOOP
    ? ???DBMS_OUTPUT.PUT_LINE('J IS :'|| J);
    ? ???EXIT WHEN J = 10;
    END LOOP INNER;
    ? ?DBMS_OUTPUT.PUT_LINE('I IS:'||I);
    ??EXIT WHEN I = 5;
    END LOOP OUTER;

    END;

    總結(jié)

    以上是生活随笔為你收集整理的oracle 循环语句总结(breakcontinue)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。