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;