可能有一種情況,當(dāng)需要執(zhí)行的代碼塊的幾個(gè)多次。在一般情況下,語句順序執(zhí)行:一個(gè)函數(shù)的第一條語句,首先執(zhí)行,然后是第二個(gè)...等等。
編程語言提供了各種控制結(jié)構(gòu),允許更多復(fù)雜的執(zhí)行路徑。
循環(huán)語句可以讓我們執(zhí)行語句多次或一個(gè)組,下面是在大多數(shù)編程語言循環(huán)語句的一般形式:
PL/ SQL提供了循環(huán)以下類型的處理循環(huán)的要求。點(diǎn)擊以下鏈接查看詳細(xì)信息。
循環(huán)類型 | 描述 |
---|---|
PL/SQL基礎(chǔ)循環(huán) | 在這個(gè)循環(huán)結(jié)構(gòu),語句序列封閉在LOOP和END LOOP語句之間。在每次迭代中,語句序列被執(zhí)行,然后在循環(huán)的頂部恢復(fù)控制 |
PL/SQL WHILE循環(huán) | 重復(fù)聲明語句或一組,而給定的條件為真,它測(cè)試條件執(zhí)行循環(huán)體前 |
PL/SQL FOR循環(huán) | 執(zhí)行語句序列多次和簡(jiǎn)寫管理該循環(huán)變量的代碼 |
PL/SQL內(nèi)嵌循環(huán) | 可以使用一個(gè)或多個(gè)循環(huán)中的任何其它基本回路,同時(shí)或循環(huán) |
PL/ SQL循環(huán)可以被標(biāo)記。標(biāo)記應(yīng)該用雙尖括號(hào)括起來(<<和>>),并出現(xiàn)在LOOP語句的開頭。標(biāo)簽名稱也可以出現(xiàn)在循環(huán)語句結(jié)束??梢允褂脴?biāo)簽在EXIT語句從循環(huán)退出。
下面的程序說明了這個(gè)概念:
DECLARE i number(1); j number(1); BEGIN << outer_loop >> FOR i IN 1..3 LOOP << inner_loop >> FOR j IN 1..3 LOOP dbms_output.put_line('i is: '|| i || ' and j is: ' || j); END loop inner_loop; END loop outer_loop; END; /
當(dāng)上述代碼在SQL提示符執(zhí)行時(shí),它產(chǎn)生了以下結(jié)果:
i is: 1 and j is: 1 i is: 1 and j is: 2 i is: 1 and j is: 3 i is: 2 and j is: 1 i is: 2 and j is: 2 i is: 2 and j is: 3 i is: 3 and j is: 1 i is: 3 and j is: 2 i is: 3 and j is: 3 PL/SQL procedure successfully completed.
循環(huán)控制語句改變其正常的順序執(zhí)行。當(dāng)執(zhí)行離開范圍,在該范圍內(nèi)創(chuàng)建的所有對(duì)象自動(dòng)被銷毀。
PL/ SQL支持以下控制語句。標(biāo)記循環(huán)也采取了循環(huán)外的控制。點(diǎn)擊以下鏈接查看他們的詳細(xì)資料。
控制語句 | 描述 |
---|---|
EXIT語句 | 在EXIT語句END LOOP后立即完成返回,控制進(jìn)到該語句 |
CONTINUE語句 | 將導(dǎo)致循環(huán)跳過其主體的其余部分,并立即重新測(cè)試其使用情況聲明之前 |
GOTO語句 | 控制權(quán)轉(zhuǎn)移給標(biāo)簽的語句。雖然不建議在程序中使用GOTO語句 |