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数据库?
[原创]java WEB学习笔记61:Struts2学习之路--通用标签 property,uri,param,set,push,if-else,itertor,sort,date,a标签等(代码片段