PLSQL Language Referenc-PL/SQL控制語句-迴圈語句-FOR迴圈-FOR迴圈中的索引

LuiseDalian發表於2014-03-10

FOR迴圈中的索引                   

FOR迴圈中的索引被隱式地宣告為INTEGER型別的變數且是區域性的;迴圈中的語句可以讀取該變數的值,但不能改變它;迴圈之外的語句不能引用該變數;迴圈執行之後,該變數消失。

BEGIN

    FOR i IN 1..3 LOOP

        IF i < 3 THEN

            DBMS_OUTPUT.PUT_LINE (TO_CHAR(i));

        ELSE

            --試圖改變下標的值,無效操作

            i := 2;

        END IF;

    END LOOP;

END;

 

BEGIN

    FOR i IN 1..3 LOOP

        DBMS_OUTPUT.PUT_LINE ('迴圈之中, i = ' || TO_CHAR(i));

    END LOOP;

 

    DBMS_OUTPUT.PUT_LINE ('迴圈之外, i = ' || TO_CHAR(i));

END;

 

DECLARE

    i NUMBER := 5;

BEGIN

    FOR i IN 1..3 LOOP

        --區域性的i隱藏了全域性的i

        DBMS_OUTPUT.PUT_LINE ('迴圈之中, i = ' || TO_CHAR(i));

    END LOOP;

 

    DBMS_OUTPUT.PUT_LINE ('迴圈之外, i = ' || TO_CHAR(i));

END;

 

<<main>>

DECLARE

    i NUMBER := 5;

BEGIN

    FOR i IN 1..3 LOOP

        DBMS_OUTPUT.PUT_LINE (

            '區域性: ' || TO_CHAR(i) || ', 全域性: ' ||

        TO_CHAR(main.i)  --使用標籤限定引用全域性的i

        );

    END LOOP;

END main;

 

BEGIN

    <<outer_loop>>

    FOR i IN 1..3 LOOP

        <<inner_loop>>

        FOR i IN 1..3 LOOP

            IF outer_loop.i = 2 THEN

                DBMS_OUTPUT.PUT_LINE

                    ('外部: ' || TO_CHAR(outer_loop.i) || ' 內部: '

                    || TO_CHAR(inner_loop.i));

            END IF;

        END LOOP inner_loop;

    END LOOP outer_loop;

END;

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/17013648/viewspace-1104321/,如需轉載,請註明出處,否則將追究法律責任。

相關文章