更正:
第二个存储过程:
create or replace procedure BBB(v_A varchar2)
is
v_B varchar2(64);
begin
v_C := 'AAAA'; delete from TAB_A a where a.bz_code = 'A';
COMMIT;
insert into TAB_A(COL1,COL2) VALUES('A','B');
commit;
update TAB_A a set a.COL3 = 'AAA';
commit;
update TAB_B a set C.COL1 = 'AAA'; commit; exception
when others then
rollback;
end BBB;首先问beckhambobo:
你是说第一个不存在分析?存不存在分析对执行效率有很大的原因吗?
可不可以讲的详细一些,谢谢。在问 dinya2003:
问什么第二种不能实现数据的一致性?
我是在同一个存储过程中实现插入和更新,如果不提交,将会锁表,不会有其他用户更改数据的,所以数据应该是同步的。
哪一个会比较好一些?
第二个存储过程:
create or replace procedure BBB(v_A varchar2)
is
v_B varchar2(64);
begin
v_C := 'AAAA'; delete from TAB_A a where a.bz_code = 'A';
COMMIT;
insert into TAB_A(COL1,COL2) VALUES('A','B');
commit;
update TAB_A a set a.COL3 = 'AAA';
commit;
update TAB_B a set C.COL1 = 'AAA'; commit; exception
when others then
rollback;
end BBB;首先问beckhambobo:
你是说第一个不存在分析?存不存在分析对执行效率有很大的原因吗?
可不可以讲的详细一些,谢谢。在问 dinya2003:
问什么第二种不能实现数据的一致性?
我是在同一个存储过程中实现插入和更新,如果不提交,将会锁表,不会有其他用户更改数据的,所以数据应该是同步的。
哪一个会比较好一些?
解决方案 »
- 本地怎么连接服务器上的oracle数据库的?急急急急急
- oracle 10g 透明网关访问 sql server2008查询没有反应
- 执行建立作业的语句有报错!
- Oracle中,在程序包中用函数调用存储过程,存储过程有返回值。
- 求助一个INSERT INTO 和SELECT联合使用的SQL语句。
- 在Oracle中是否可以通过编写存储过程把数据库数据导出为.CSV文件?how?
- 急急急!!oracle 创建触发器的问题,求大神解疑!!!
- 这样设计的数据库,请给个意见
- 高分求解二道练习题,急急之(1)
- SELECT INTO 后如何知道查询的结果记录数 ?
- 用过ACCESS链接ORACLE数据库的人进来!
- 联边远程数据库时报错,急!!!急!!!!
is
v_B varchar2(64);
begin
v_C := 'AAAA'; delete from TAB_A a where a.bz_code = 'A'; insert into TAB_A(COL1,COL2) VALUES('A','B'); update TAB_A a set a.COL3 = 'AAA'; update TAB_B a set C.COL1 = 'AAA'; commit; exception
when others then
rollback;
end BBB;
在你执行的四步操作中,后三步的任何一步在执行的过程中如果出现异常,都将执行异常处理部分,虽然异常处理部分执行了回滚,但是此回滚却不能将第一条已经执行的操作回滚.,也就是说,如果出现了异常,无法判断系统执行到了哪一步.
不过一般写法如 zw_yu(鱼猫) 所言,除非你有特殊处理