IF SET帮助Oracle到DB2

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IF SET帮助Oracle到DB2相关的知识,希望对你有一定的参考价值。

我必须将所有过程从Oracle迁移到DB2数据库。我想知道,如果Oracle工作,我如何在IF内部执行SET语法。

在Oracle中使用的变量是ps_iPkCooperativa并且正在接收0。

Oracle代码:

BEGIN
    SELECT CCOOP
      INTO ps_iPkCooperativa
      FROM COOP
    EXCEPTION
        WHEN NO_DATA_FOUND
        THEN  ps_iPkCooperativa := 0;
END; 

我如何在DB2中执行此操作?

答案

你可以进行这样的转换到db2:

    BEGIN ATOMIC
     DECLARE ps_iPkCooperativa INT;

        SELECT CCOOP
          INTO ps_iPkCooperativa
          FROM COOP;         
     SIGNAL SQLSTATE '02000' -- means no_data_found
          SET MESSAGE_TEXT='No Data Found ';
          SET ps_iPkCooperativa = 0;
    END@  

哪里

顾名思义,ATOMIC复合语句可以被认为是一个单一的整体 - 如果在其中出现任何未处理的错误条件,那么到目前为止执行的所有语句都被认为已经失败并因此被回滚。 ATOMIC复合语句不能嵌套在其他ATOMIC复合语句中。

此外,您不能在ATOMIC复合语句中使用SAVEPOINT或发出显式COMMIT或ROLLBACK。

注意

ATOMIC复合语句中不允许使用COMMIT,ROLLBACK,SAVEPOINTS和嵌套的ATOMIC复合语句。

以上是关于IF SET帮助Oracle到DB2的主要内容,如果未能解决你的问题,请参考以下文章

LINUX下shell脚本如何执行 sql脚本 到DB2数据库?

如何将DB2数据库转换成Oracle数据库,这一篇告诉你

[原创]java WEB学习笔记61:Struts2学习之路--通用标签 property,uri,param,set,push,if-else,itertor,sort,date,a标签等(代码片段

数据库语言之间的区别 SQL server , Oracle , mysql , db2``

需要支持 Oracle 和 DB2 的通用日期函数

将数据从一个 oracle 数据库表加载到另一个 oracle 数据库表