我有一个存储过程 其中有update的语句,我在command窗口中执行exec "存储过程名" 执行后,发现更新的表内容没有变?是怎么回事呢?

解决方案 »

  1.   

    问题写清楚点呀,
    拜托,问问题也讲究个方法没有存储过程代码,没有exec的command.....怎么找问题
      

  2.   

    存储过程中有没有commit;帖代码才可以找原因。
      

  3.   

    先看看是否有commit
    然后在代码中加一些dbms_output.putline('')看看执行的过程是否正常
      

  4.   

    代码:create or replace procedure update_oa_temp_tab is
       CURSOR body_code IS
          select  b.ITEM219,b.vol_id
          from oa_temp_tab a, OA_DOCVIEW_TAB b
          where trim(a.code) = trim(b.ITEM219);
    begin
       for curr_code in body_code loop
         update oa_temp1_tab
            set vol_id = curr_code.vol_id
         where trim(code) = trim(curr_code.ITEM219);
       end loop;
    end update_oa_temp_tab;
      

  5.   

    加上COMMIT;
    ...
    end loop; 
    COMMIT;
    end update_oa_temp_tab;
    ...
      

  6.   

    假如我在pl/sql developer中  通过什么操作能代替代码的commit?
      

  7.   

    请高手指点一下在pl/sql developer中如何操作才完成一个过程的测试和发布?
      

  8.   

    commit就是提交阿。你加下不费力气的。过程吗,你写完后,就可以运行了阿。不知道发布是什么意思。测试的话
    话你运行后在procedures里有这个存储过程。你打开它重新编辑一下,如果有错的话,就会提示错误的。
    编译成功后,exec 过程名就可以了。