存储过程中commit问题

半世码农 2010-06-02 09:24:18
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的能起到什么作用吗?有特殊意义吗?
...全文
407 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
心中的彩虹 2010-06-02
  • 打赏
  • 举报
回复
[Quote=引用楼主 gaotianyou 的回复:]
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 :=……
[/Quote]

这里面没什么意思
要是修改表记录就得要提交
kingkingzhu 2010-06-02
  • 打赏
  • 举报
回复
存储过程里一般应该有数据修改 不然就直接用函数了
楼主还是把存储过程全部贴出来吧
不过好像oracle本身也不提倡频繁额外commit oracle提倡以事物大小进行commit
半世码农 2010-06-02
  • 打赏
  • 举报
回复
我刚来这个公司,我看到他们的存储过程有很多这种没有发生数据插入,更新的语句,但缺用了commit;所以很疑惑,上来请高手指点,看大家的意思,这样的commit是没什么意义了
luoyoumou 2010-06-02
  • 打赏
  • 举报
回复
[Quote=引用楼主 gaotianyou 的回复:]
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 :=……
[/Quote]

-- 一般是执行了INSERT、UPDATE、DELETE操作后去COMMIT !

-- SELECT语句不需要COMMIT! 所以:你这里的COMMIT语句,不会出错,但意义不大!
半世码农 2010-06-02
  • 打赏
  • 举报
回复
commit在这里可以起到释放资源的作用吗?这只是其中一部分,但代码中用了很多像这样的commit,我一直不知道有什么作用!!!
[Quote=引用 3 楼 kingkingzhu 的回复:]

如果这是全部代码 那在提交啥 呵呵
如果是部分 适当commit 是可以释放很多资源的
[/Quote]
kingkingzhu 2010-06-02
  • 打赏
  • 举报
回复
如果这是全部代码 那在提交啥 呵呵
如果是部分 适当commit 是可以释放很多资源的
ojuju10 2010-06-02
  • 打赏
  • 举报
回复
从上面的代码看commit没有什么意义,因为没有看到数据操作,只是变量赋值,不需要用commit
geniusqiao 2010-06-02
  • 打赏
  • 举报
回复
应该没有什么特殊意义吧

17,088

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧