正文
oracle事务怎么处理,oracle存储过程 事务
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
oracle事务处理
登陆sqlplus,执行如下操作:
set serverout on;
begin
insert into zyb values('zy2002001','112201001','y001',10000,'张三','05-01-2002','05-04-2002','05-25-2002','作业公司作业一队','堵漏',7000,2500,1000,1400,11900,'李四','05-26-2002',11900,'王五','05-28-2002');
insert into clfb values('zy2002001','wm001',200,10);
insert into clfb values('zy2002001','wm002',200,10);
insert into clfb values('zy2002001','wm003',200,10);
insert into clfb values('zy2002001','wm004',100,10);
commit;
dbms_output.PUT_LINE('语句执行成功');
exception
when others then
rollback;
dbms_output.PUT_LINE('语句执行失败');
end;
/
oracle的事务处理有什么作用
您好,其实数据库的事务处理机制其原理都是一样的,都是保证数据的一致性,要么更新所有相关联的数据,要么就不做更新。举个简单的例子:顾客去超市刷卡购物,这一过程起码涉及到2个数据库的更新,一是:顾客购物成功后更新银行的数据库,相应的扣除对应账户的余额,二是更新超市的商品库存的数据库,相应的把购走的商品的库存数量减少。
上面是正常的购物流程,假如出现了意外情况,比如:用户在购物时银行账户的余额不足,这时交易是不能成功的,如果没有给数据库加上事务处理机制,就会导致银行账户的余额确实不减,但是超市的数据库依旧会把库存商品减掉,这样就导致了数据的不同步,发生了混乱。所以必须使用事务处理机制,要么银行账户扣除余额,超市库存减少,要么就都不减,而避免了一个减少,一个不减的错误发生。希望对您有所帮助。
Oracle中事务的处理,比如要对表A操作,我先查询在更新,是否需要将查询放在事务,求高手解答!
按照你说的要求,查询不用放在事务里面,一般是在多个更新或删除的情况下才用到事务,并且“多个更新或删除”是要求原子性的,也就是要么都执行,要么都不执行。你说的这种情况,用不到事务,直接先查询再更新就行。首先查询是不会用到事务的,连续多个查询页不会用到事务,而第二步的更新,如果只涉及一个sql进行更新的话,也不会用事务(如果连续使用多个sql进行更新的话,需要用事务)。
Oracle中事务怎么使用 ,什么时候使用事物
事务是为了实现数据的一致性和并发处理,你对数据进行定义和修改时就会产生事务。
例如你执行update语句,这时事务就开始了,执行commit会提交事务,而rollback会回滚(撤销)事务。如果你什么也不做,那么正常退出程序时会自动提交,而程序异常中止则会回滚事务。
oracle一个事务可以怎样结束
Oracle的事务开始于一个DML语句。
当以下情况发生时,事务结束:
1、COMMIT/ROLLBACK
2、执行了DDL/DCL语句
3、客户端主动断开数据库的连接(DISCONNECT)
4、数据库关闭(宕机)
另外,一个DDL/DCL语句实际上就是一个事务,其中隐含了COMMIT。
Oracle不需要特别的去指定事务的开始和结束。一个事务的结束就是下一个事务的开始。
oracle 自主事务处理怎么理解,没有自主事务处理会有什么弊端呢?
自主事务处理, 就是 我这个存储过程里面, 自己管理事务处理。
我自己的对数据作了修改, 提交了,那么就提交了。
无视外部的事务, 是否提交或者回滚。
这个主要用于一些特殊的情况, 例如 安全审核记录的处理。
例如 有人要更新某个 很重要的表。
那么我要记录这个 更新的日志信息。 是谁,什么时间,什么机器更新的。
无论这个人, 本次更新操作是否成功, 我都要记录。
没有自主事务处理的情况下, 上面这种情况。
如果那个人更新成功了, 那么我的日志也成功。
如果那个人, 更新了, 然后 roolback 了, 那么我的日志也 回滚了。
SQL select * from test_main;
ID VALUE
---------- --------------------
2 TWO
3 THREE
1 ONE
SQL CREATE OR REPLACE PROCEDURE Autonomous_Insert
2 AS
3 -- 定义 “自治事务”
4 PRAGMA AUTONOMOUS_TRANSACTION;
5 BEGIN
6 INSERT INTO test_main(id, value) VALUES (5, 'FIVE');
7 COMMIT;
8 END;
9 /
Procedure created.
SQL BEGIN
2 -- 非自治事务的语句.
3 INSERT INTO test_main(id, value) VALUES (4, 'FOUR');
4 -- 自治事务
5 Autonomous_Insert;
6 -- 非自治事务回滚,不影响自治事务.
7 rollback;
8 END;
9 /
PL/SQL procedure successfully completed.
SQL select * from test_main;
ID VALUE
---------- --------------------
5 FIVE
2 TWO
3 THREE
1 ONE