oracle中for循環的使用


FOR循環(相當於i++)

CREATE OR REPLACE FUNCTION A_Test1(I_VAL VARCHAR2) RETURN VARCHAR2 is
     V_RESULT       VARCHAR2(500);
 BEGIN
     FOR I IN 1..5 LOOP
         V_RESULT:=V_RESULT||','||I;
     END LOOP;
     RETURN V_RESULT;
 EXCEPTION
     WHEN OTHERS THEN
          RETURN SQLCODE||SQLERRM;
 END A_Test1;

最終結果:,1,2,3,4,5

 

使用REVERSE倒過來循環(相當於i--)

CREATE OR REPLACE FUNCTION A_Test1(I_VAL VARCHAR2) RETURN VARCHAR2 is
     V_RESULT       VARCHAR2(500);
 BEGIN
     FOR I IN REVERSE 1..5 LOOP
         V_RESULT:=V_RESULT||','||I;
     END LOOP;
     RETURN V_RESULT;
 EXCEPTION
     WHEN OTHERS THEN
          RETURN SQLCODE||SQLERRM;
 END A_Test1;

最終結果:,5,4,3,2,1

 

使用CONTINUE跳過當前循環,進行下一次

CREATE OR REPLACE FUNCTION A_Test1(I_VAL VARCHAR2) RETURN VARCHAR2 is
     V_RESULT       VARCHAR2(500);
 BEGIN
     FOR I IN 1..5 LOOP
         IF I=3 THEN
            CONTINUE;
         END IF;
         V_RESULT:=V_RESULT||','||I;
     END LOOP;
     RETURN V_RESULT;
 EXCEPTION
     WHEN OTHERS THEN
          RETURN SQLCODE||SQLERRM;
 END A_Test1;

最終結果:,1,2,4,5

 

 

使用EXIT跳出循環(相當於break)

CREATE OR REPLACE FUNCTION A_Test1(I_VAL VARCHAR2) RETURN VARCHAR2 is
     V_RESULT       VARCHAR2(500);
 BEGIN
     FOR I IN 1..5 LOOP
         IF I=3 THEN
            EXIT;
         END IF;
         V_RESULT:=V_RESULT||','||I;
     END LOOP;
     RETURN V_RESULT;
 EXCEPTION
     WHEN OTHERS THEN
          RETURN SQLCODE||SQLERRM;
 END A_Test1;

最終結果:,1,2

 

 

當出現EXCEPTION不想做任何操作的時候,如果什么都不寫,程序會報錯。如果想什么都不做,直接寫一個null就行了。

CREATE OR REPLACE FUNCTION A_Test1(I_VAL VARCHAR2) RETURN VARCHAR2 is
     V_RESULT       VARCHAR2(500);
 BEGIN
     BEGIN
         SELECT MARK_NO INTO V_RESULT FROM BP_MARK;
     EXCEPTION WHEN OTHERS THEN
         NULL;
     END;
 EXCEPTION
     WHEN OTHERS THEN
          RETURN SQLCODE||SQLERRM;
 END A_Test1;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM