首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未触发SQL继续处理程序。

未触发SQL继续处理程序。
EN

Stack Overflow用户
提问于 2020-04-21 09:42:22
回答 1查看 213关注 0票数 0

IBM i V7R1M0无论何时发生错误,只要阅读过,我都需要继续处理语句,例如:

https://dba.stackexchange.com/questions/88862/how-to-ignore-sql-errors-in-stored-procedure-not-handle

声明继续处理程序似乎是答案,所以

我有一个非常简单的程序,看起来是这样的:

代码语言:javascript
复制
exec SQL create or replace procedure test_prod1   
         (in test2 decimal(1,0))                  
         language sql modifies sql data           
         begin                                    
         declare continue handler for sqlexception
            begin end;                            

         update DUPEPF set INT2 = test2;          
         end;                                     

据我所知,这意味着每当发生错误(例如唯一的键冲突),SQL语句就会继续,但事实并非如此。每当出现密钥冲突且未处理下一行时,该语句就会停止。我搞不懂为什么会这样

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-22 15:14:46

你的接线员正在工作..。

您的过程忽略了UPDATE语句引发的错误并继续。只是没有别的事可做了。

仅仅因为proc忽略了错误,并不意味着DB可以忽略它的update语句处理中的错误。

编辑

处理程序更改存储过程或UDF处理它们的errrors...think的方式,以“捕获”由DB引发的错误。它们并不能阻止DB首先抛出这些错误,

讲得通?

为了做你想做的事,你需要使用你自己的光标。

代码语言:javascript
复制
     create or replace procedure test_prod1   
     (in test2 decimal(1,0))                  
     language sql modifies sql data           
     begin           
     declare myInt integer;
     DECLARE DUPLICATE_KEY CONDITION FOR SQLSTATE '23505';
     DECLARE END_OF_TABLE CONDITION FOR SQLSTATE '02000';
     declare test_cursor cursor for
        select int2 from DUPEPP for update;
     declare exit handler for END_OF_TABLE
        close test_cursor;                         
     declare continue handler for DUPLICATE_KEY
        begin end;                            


     open test_cursor;
     fetch_loop:
     LOOP
       fetch next from test_cursor into myInt;
       update dupepf set int2 = test2
         where current of test_cursor;
     END LOOP fetch_loop;
     end;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61340459

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档