码迷,mamicode.com
首页 > 数据库 > 详细

oracle 游标循环, 查询,异常捕获,继续执行

时间:2015-06-10 14:03:11      阅读:574      评论:0      收藏:0      [点我收藏+]

标签:

declare
       --类型定义
       strsql string(500);
        v_ErrorCode NUMBER;           -- Variable to hold the error message code  
        v_ErrorText VARCHAR2(200);    -- Variable to hold the error message text  
       cursor c_eventstate
       is
       Select  CampaignId,phonenumber,PolicyNumber from mkt_eventstate a where synstate =0 and packagestate = 2 and errorcode = 6;
       --定义一个游标变量v_cinfo c_emp%ROWTYPE ,该类型为游标c_emp中的一行数据类型
       c_row c_eventstate%rowtype;
begin
       for c_row in c_eventstate loop
          begin
          strsql:=‘select * from mkt_userprizeinfo t where t.campaignid=‘||c_row.CampaignId||‘ and t.userid=‘||c_row.phonenumber||‘ and t.PolicyNumber=‘‘‘||c_row.PolicyNumber||‘‘‘‘;
          execute immediate strsql ;
         dbms_output.put_line(c_row.CampaignId||‘-‘||c_row.phonenumber||‘-‘||c_row.PolicyNumber);
        -- RAISE_APPLICATION_ERROR(-20001,‘数值不能为0‘);
          EXCEPTION
         --捕捉异常
         WHEN others THEN
           begin
              v_ErrorCode := SQLCODE;  
              v_ErrorText := SUBSTR(SQLERRM, 1, 200); 
           DBMS_OUTPUT.put_line(‘捕获了错误begin‘);
           dbms_output.put_line(c_row.CampaignId||‘-‘||c_row.phonenumber||‘-‘||c_row.PolicyNumber||‘-‘||v_ErrorCode || ‘::‘||v_ErrorText);
           DBMS_OUTPUT.put_line(‘捕获了错误end‘);
           end;
         end;
       
       end loop;    
end;

oracle 游标循环, 查询,异常捕获,继续执行

标签:

原文地址:http://www.cnblogs.com/linbl/p/4565746.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!