有关数据提交。

tw_cshn 2003-10-16 08:57:54
程序调用存储过程,如果在此期间内。程序异常退出
那么过程将继续在服务器上运行。这个时候执行完后,数据会全部回滚吗 。
在过程里没有写COMMIT也没有写ROLLBACK 。
...全文
37 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
LGQDUCKY 2003-10-17
  • 打赏
  • 举报
回复
存储过程里,只要没有设有COMMIT;
默然是回滚的。
tiger9382 2003-10-17
  • 打赏
  • 举报
回复
在默认情况下,数据库中的数据改变后都需要COMMIT命令进行提交,我记得好象有个开关,对这个开关进行设置,就可以实现在数据库中不需执行COMMIT命令而自动提交了
tw_cshn 2003-10-17
  • 打赏
  • 举报
回复
我做了个实验。我用程序开始运行过程。然后我再把机器的网线拔掉,
程序和数据库失去了联系。过了段时间我发现数据并没有写入,是正确的。
我想知道会不会有特殊情况会造成数据提交,谢谢
tiger9382 2003-10-17
  • 打赏
  • 举报
回复
关注ING:如果存储过程中没有执行COMMIT,但是我在程序中调用了存储过程,然后在程序中执行COMMIT命令,这样数据库中的数据会被提交吗?
tw_cshn 2003-10-16
  • 打赏
  • 举报
回复
是不会提交吧,我就是希望不提交?我在这个里面修改了重要的数据,但是我是不希望提交的,就算程序运行完后我也不提交,都是在程序里面回滚事物的。
我就是怕有什么其他的原因会造成数据提交 .

我在过程里没有写COMMIT,也没有ROLLBACK。句这样写的。


呵呵,看到了神仙!
pengdali 2003-10-16
  • 打赏
  • 举报
回复
全部回滚?
看你的代码怎么写了。默认这样会回滚。

create table terror(a int);
/

create or replace procedure error(a in varchar2)
as
begin
insert into terror values(9999);
insert into terror values(a);
end;
/

exec error('xx');
/
select * from dali.terror;
/
tsj68 2003-10-16
  • 打赏
  • 举报
回复
一般情况下会回滚.

17,082

社区成员

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

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