程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> DB2數據庫 >> DB2教程 >> 幾種常用的DB2循環用法

幾種常用的DB2循環用法

編輯:DB2教程

DB2循環的用途在DB2數據庫中是很廣泛的,下面就為您介紹四種常見的DB2循環用法,希望可以在您學習DB2循環方面有所幫助。

1.利用得到的游標在存儲過程中循環:

  1. DECLARE CUR_FEESET CURSOR WITH RETURN TO CALLER FOR (  
  2. SELECT  
  3. --  
  4. FROM 表  
  5. WHERE 條件  
  6. );  
  7. OPEN CUR_FEESET;--得到游標  
  8. --得到游標記錄數  
  9. SELECT  
  10. count(CIF_CSTNO)  
  11. into v_count  
  12. FROM CB_CSTINF A ,CB_CSTBSNINF B  
  13. WHERE A.CIF_STT<>'3' AND A.CIF_CSTNO = B.CBI_CSTNO ;   --  
  14. FETCH CUR_FEESET INTO V_CSTNO,V_FEECODE,V_CSTLEVEL,V_FEEMODE;--  
  15. WHILE V_COUNT>0 DO  
  16.  ……..  
  17. FETCH CUR_FEESET INTO V_CSTNO,V_FEECODE,V_CSTLEVEL,V_FEEMODE;--  
  18. END WHILE; --  
  19.  

2.另一種db2標准循環格式(leave、iterate 用法):

  1. SET V_COUNT = LENGTH(V_VALIDAUTHCOMBOS);--  
  2.  
  3. SET V_INDEX = 0;--  
  4.  
  5. AUTHLOOP:  
  6. LOOP  
  7.       IF V_INDEX >= V_COUNT THEN  
  8. LEAVE AUTHLOOP;--相當於break  
  9.       END IF;--  
  10. ....  
  11.       SET V_INDEXV_INDEX = V_INDEX + 1;--  
  12.       .......  
  13.       IF 條件 THEN  
  14.      ITERATE AUTHLOOP;-- 相當於continue  
  15.       END IF;--  
  16. END LOOP;--  

3.截取字符串的循環設V_TEMP=‘CB1001|CB1002|CB1003|’):

  1. SET V_LENGTH = LENGTH(V_TEMP);  
  2.     WHILE V_LENGTH>0 DO   
  3. SET V_POS = POSSTR(V_TEMP,'|');  
  4. SET V_CURRENT_BSN = SUBSTR( V_TEMP, 1, V_POS-1 );  
  5. SET V_TEMP = SUBSTR( V_TEMP, V_POS+1 );  
  6. SET V_LENGTH = LENGTH(V_TEMP);   
  7. --最後一個字段,不再截取  
  8. SET V_BSNTYPE = V_CURRENT_BSN;  
  9.     END WHILE;    

4.游標循環不用open 游標):

  1. DROP PROCEDURE TESTFOR;  
  2.     CREATE PROCEDURE TESTFOR()  
  3.     LANGUAGE SQL  
  4.     BEGIN  
  5.     DECLARE V_TEMP1 VARCHAR(2);  
  6.     DECLARE V_TEMP2 VARCHAR(70);  
  7.     FOR V1 AS CURSOR1 CURSOR FOR  
  8. SELECT STUDENT_ID AS TEMP1,STUDENT_NAME AS TEMP2 FROM STUDENT  
  9.     DO   
  10. DELETE FROM STUDENT WHERE STUDENT_ID = TEMP1;  
  11. SET V_TEMP1 = TEMP1;  
  12. SET V_TEMP2 = TEMP2;  
  13.     END FOR;  
  14.     COMMIT;  
  15.     END; 

DB2創建數據庫的實現

DB2目錄視圖說明

DB2創建表--帶有自增列的表

DB2重命名表和查看表信息

DB2列轉行的實現

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved