簡體   English   中英

在Oracle PL / SQL中進行循環

[英]For In loop in Oracle PL/SQL

在PL / SQL中,我可以使用FOR IN循環從1-20開始迭代,方法是說:

FOR counter IN 1..20

我想知道的是,是否可以對此做一個簡單的更改,使我僅對1-20之間的偶數值進行循環遍歷? 即計數器將轉到2、4、6 ... 20

添加到戈登的評論...

這是語法,所以沒有內置方式

http://docs.oracle.com/cd/E11882_01/appdev.112/e25519/controlstatements.htm#LNPLS411

[ label ] FOR index IN [ REVERSE ] lower_bound..upper_bound LOOP
  statements
END LOOP [ label ];

您可以在FOR LOOP語句中模擬STEP子句

http://docs.oracle.com/cd/E11882_01/appdev.112/e25519/controlstatements.htm#BCGJHACI

DECLARE
  step  PLS_INTEGER := 5;
BEGIN
  FOR i IN 1..3 LOOP
    DBMS_OUTPUT.PUT_LINE (i*step);
  END LOOP;
END;
SET SERVEROUTPUT ON;--default buffer size is 1000 000
declare 
idx number:=0;
step number:=10000;
begin
DBMS_OUTPUT.ENABLE(Null);-- unlimited output buffer
for i in 1..3 loop
 DBMS_OUTPUT.PUT_LINE('idex: from [' ||idx|| ' ] to [' || (idx+step) || ']');
 --..... you loop logic
  select t.id, row_number() over(order by t.id) rw
         from t
         where rw >= idx and rw < (idx+step)
 idx:= idx+step; --increment step.
end loop;
end;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM