您的位置:程序门 -> db2 -> 基础类



db2 procedure一个奇怪的问题


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


db2 procedure一个奇怪的问题[已结贴,结贴人:dragonfly001]
发表于:2007-06-11 09:43:41 楼主
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的资料也更新了,为什么??
发表于:2007-06-11 10:00:241楼 得分:0
没有人遇到这个问题吗??   自己顶一下的啊
发表于:2007-06-17 23:11:422楼 得分:50
测试了,两个都不会更新,理应也是。
事务需要使用commit。
加入一句commit;
发表于:2007-06-20 10:23:053楼 得分:0
这两种写法,结果应该是一模一样的,fengxiarong707(蒋枫)   说的有道理
发表于:2007-06-23 07:33:264楼 得分:0
commit
发表于:2007-07-02 16:07:575楼 得分:0
该回复于2007-12-29 16:26:41被管理员或版主删除


快速检索

最新资讯
热门点击