读书人

Db2 Procedure一个奇怪的有关问题

发布时间: 2012-03-02 14:40:29 作者: rapoo

Db2 Procedure一个奇怪的问题
CREATE PROCEDURE DB2ADMIN.PROCEDURE1 ( in Msg Varchar(100) ,out ReturnStr varchar(100))
MODIFIES SQL DATA
LANGUAGE SQL
------------------------------------
-- SQL 存储过程
------------------------------------
P1: BEGIN
update test set msg = Msg ;
set ReturnStr= Msg;
END P1
这样写的时候,编译运行,输入参数OK,返回值OK,但是表test的资料没有更新
改为下面这样
CREATE PROCEDURE DB2ADMIN.PROCEDURE1 ( in Msg Varchar(100) ,out ReturnStr varchar(100))
MODIFIES SQL DATA
LANGUAGE SQL
------------------------------------
-- SQL 存储过程
------------------------------------
P1: BEGIN
DECLARE sMsg varchar(40) DEFAULT ' ';
set sMsg = Msg;
update test set msg = sMsg ;
set ReturnStr= Msg;
END P1
编译运行,输入参数OK,返回值OK,表test的资料也更新了,为什么??


[解决办法]
测试了,两个都不会更新,理应也是。
事务需要使用commit。
加入一句commit;

读书人网 >IBM DB2

热点推荐