ORACLE存储过程中使用游标

游标的使用方式相当之多,可以作为参数返回,也可以在存储过程内部使用当做局部的变量,存储过程里面使用的时候也是多种多样,这里记录一下最简单的一种使用方式,如下所示:

    DECLARE
  	      --类型定义
        CURSOR C_CUST_INFO IS
            SELECT  
            A.BUREAU_NO,
            B.YHBH AS YHBH,
            B.YHMC AS YHMC,
            B.YDDZ AS YDDZ,
            B.CBQDBH AS CBQDBH,
            B.YHMC AS YHMC2,
            B.LXDH AS LXDH
            FROM YX_READING_TASK A , YX_READING_TASK_DATA B 
            WHERE A.TASKID = B.TASKID 
            ORDER BY B.YHBH;
        --定义一个游标变量
        C_ROW C_CUST_INFO%ROWTYPE;
        --V_CUST_ID VARCHAR2(32);
    BEGIN
        FOR C_ROW IN C_CUST_INFO LOOP
            
            INSERT INTO CUST_INFO
            (
              BUREAU_NO,
              CUST_ID,
              CUST_NAME,
              CUST_ADDR,POWERZONE,LINK_MAN,LINK_PHONE
            )VALUES(
              C_ROW.BUREAU_NO,
              C_ROW.YHBH,
              C_ROW.YHMC,
              C_ROW.YDDZ,
              C_ROW.CBQDBH,
              C_ROW.YHMC2,
              C_ROW.LXDH
            );
            
            --V_CUST_ID := C_ROW.YHBH;
            
        END LOOP;
    END;

注意游标的select语句里面不能有相同列名,要不然会报错,可以用别名来处理相同列名。在declare块里面可以定义很多变量,然后在loop里面可以使用,这样就能够处理很多复杂的业务逻辑了。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值