游标

在sql函数或者存储过程编程中,对数据一行一行地进行操作,游标的操作自然离不了,下面为学习的游标练习
CREATE OR REPLACE PROCEDURE ECC_test.SP_TST AS
   VV_A VARCHAR(300);
   VV_B VARCHAR(300);
BEGIN


   FOR I_CUR IN (SELECT * FROM ecc_test.special_com_imagine_TST T)
   LOOP
     VV_A := I_CUR.ORDER_ID;
     VV_B:= I_CUR.SPECIAL_COM;
             begin
                 INSERT INTO ecc_test.special_com_imagine_TST1
                 (
                    ORDER_ID         ,
                    PRODFAM_CODE     ,
                    PRODFAM_TEXT     ,
                    CFGITEM_CODE     ,
                    SPECIAL_COM      ,
                    CREATE_DATE      ,
                    USEFUL_DATE      ,
                    CFGITEM_TEXT     ,
                    ACTIVE_FLAG      ,
                    GUID             ,
                    KEY_MATERIAL     ,
                    KEY_MATERIAL_DES ,
                    PAY_TIME         ,
                    PAY_NOT_SATISFY_
                 )
                 VALUES(
                    I_CUR.ORDER_ID         ,
                    I_CUR.PRODFAM_CODE     ,
                    I_CUR.PRODFAM_TEXT     ,
                    I_CUR.CFGITEM_CODE     ,
                    I_CUR.SPECIAL_COM      ,
                    CASE WHEN I_CUR.CREATE_DATE IS NOT NULL THEN TO_DATE(TRIM(I_CUR.CREATE_DATE),'yyyy-mm-DD')    END ,
                    CASE WHEN I_CUR.USEFUL_DATE IS NOT NULL THEN TO_DATE(TRIM(I_CUR.USEFUL_DATE),'yyyy-mm-DD')    END ,
                    I_CUR.CFGITEM_TEXT     ,
                    I_CUR.ACTIVE_FLAG      ,
                    I_CUR.GUID             ,
                    I_CUR.KEY_MATERIAL     ,
                    I_CUR.KEY_MATERIAL_DES ,
                    I_CUR.PAY_TIME         ,
                    I_CUR.PAY_NOT_SATISFY_
                 );
               COMMIT;
            exception
              WHEN OTHERS THEN
                 insert into ecc_test.tb_tst_123
                 (ORDER_ID,
                  SPECIAL_COMM)
                  values(VV_A,VV_B);
                  commit;
            end ;
   END LOOP;
 EXCEPTION
  WHEN OTHERS THEN
         insert into ecc_test.tb_tst_123
         (ORDER_ID,
          SPECIAL_COMM)
          values(VV_A,VV_B);
          commit;
END;


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值