if substr(v_datadate, 9, 2) in (10,20)
     then
         v_Tendate := v_datadate;
     elsif last_day(to_date(''||v_dataDate||'','yyyy-mm-dd'))= to_date(''||v_dataDate||'','yyyy-mm-dd')
     then
          v_Tendate := v_datadate;
     else
         null;
     end if;
commit;v_endtime := sysdate; 
commit;像上面的存储过程代码,这个commit的能起到什么作用吗?有特殊意义吗?

解决方案 »

  1.   

    从上面的代码看commit没有什么意义,因为没有看到数据操作,只是变量赋值,不需要用commit 
      

  2.   

    如果这是全部代码  那在提交啥  呵呵
    如果是部分  适当commit  是可以释放很多资源的
      

  3.   

    commit在这里可以起到释放资源的作用吗?这只是其中一部分,但代码中用了很多像这样的commit,我一直不知道有什么作用!!!
      

  4.   


    -- 一般是执行了INSERT、UPDATE、DELETE操作后去COMMIT !-- SELECT语句不需要COMMIT!  所以:你这里的COMMIT语句,不会出错,但意义不大!
      

  5.   

    我刚来这个公司,我看到他们的存储过程有很多这种没有发生数据插入,更新的语句,但缺用了commit;所以很疑惑,上来请高手指点,看大家的意思,这样的commit是没什么意义了
      

  6.   

    存储过程里一般应该有数据修改 不然就直接用函数了 
    楼主还是把存储过程全部贴出来吧
    不过好像oracle本身也不提倡频繁额外commit  oracle提倡以事物大小进行commit