当前位置: 代码迷 >> DB2 >> Db2 Procedure一个奇怪的有关问题
  详细解决方案

Db2 Procedure一个奇怪的有关问题

热度:1923   发布时间:2013-02-26 00:00:00.0
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;
  相关解决方案