Oracle中数据库事务处理
Oracle12-EBS_AR_事务处理操作手册

AR模块--事务处理操作手册目录文档控制 .................................................................................................... 错误!未定义书签。
目录 (2)操作手册 (1)作业内容 (1)设置步骤 (1)测试流程 (15)问题与总结 (16)问题及解决 (16)总结 (16)操作手册作业内容在已定义各种事务处理类型、事务处理来源和自动会计的基础上,可以进行事务处理的录入和调整、更正设置步骤标准发票事务处理录入一张标准发票路径:事务处理:Transactions事务处理的来源、编号、分类一旦选定便不可更改。
点击行项目,输入摘要,数量和单价,系统会自动计算出金额。
摘要字段会提示需要在OM模块进行维护,但不维护并不影响保存和事务处理后续的活动。
保存后,会根据税则自动计税。
如果点击税,手动改动税率,将会重新计算税额比如改动成13%的税率,将会变成下图:回到事务处理主界面,点击完成按钮,事务处理就完成了。
撤销在已完成的事务处理界面,点击未完成键,事务处理将会回到未完成状态。
需要注意的是,已进行活动的事务处理无法撤销。
更新事务处理在事务处理界面,底色为黄色的字段可以进行直接改动。
未完成的事务处理大部分信息都可以改动,来源、事务处理编号和类型除外。
已进行活动、已过账的事务处理可以更改的字段很少,已完成而未进行活动的事务处理可以改动大部分头信息,也可以通过改动撤销已完成状态进行更改。
删除事务处理首先在系统设置中设置允许删除事务处理路径:设置:系统:系统选项:事务处理和客户:允许删除事务处理该操作只能在事务处理未完成状态下进行,已完成的事务处理即使勾选了该选项,也不能被删除。
完成状态下的删除按钮是灰色的:调整活动对已完成的事务处理,不论是否进行活动,都可以对其进行调整。
调整活动不会影响事务处理的行信息,而只会影响到期余额。
Oracle的事务及锁

1、事务的概念:事务是一个基本的逻辑单元,它作为一个整体要么全部执行要么全部不执行。
2、事务的特性:原子性:事务是处理的一个原子单位,每一个操作不可拆分,它要么全部执行成功,要么全部都不执行。
一致性:指事务完成时,必须使所有的数据在整体上不变。
隔离性:各事务之间相互隔离,此事务的执行不受其他并发事务执行的干扰。
持续性:指事务对数据库的改变应是持续存在的,不会因故障而发生丢失。
3、从功能是上划分,sql语言分为DDL、DML和DCL:3.1DDL(Data Definition Language,数据定义语言):用于定义和管理数据库中的所有对象的语言,如:create创建表空间、alter修改表空间、drop 删除表空间3.2:DML(Data manipulation Language,数据操作语言):处理数据等操作,如:insert插入数据、delete删除数据、update修改数据、select查询数据3.3:DCL(Data Control Language,数据控制语言):授予或回收访问数据库的权限,控制数据库操作事务发生的时间及效果,对数据库实行监视,如:grant授权,rollback回滚,commit提交4、事务的开始及结束:一个事务可以由一条DDL语句单独组成或多条DML语句共同组成。
一个事务从执行第一条sql语句开始,在它被提交或被回滚时结束。
事务的提交可以是显式提交:用commit命令直接完成;也可以是提交隐式提交:用sql语句间接完成提交,这些语句有:alter,audit,comment,create,disconnect,drop,exit,grant,noaudit,quit,revoke,rename,会话终止等;还可以是自动提交:set autocommit on或set autocommit immediate设置为自动提交,则在插入、删除、修改语句执行后自动提交,使用set autocommit off可以取消自动提交,show autocommit可以查看自动提交是否打开。
oracle回滚事务的sql语句

oracle回滚事务的sql语句摘要:1.引言2.Oracle数据库简介3.回滚事务的概念4.Oracle回滚事务的SQL语句5.总结正文:在Oracle数据库中,事务是用于处理数据的一组操作。
当事务执行过程中出现错误时,需要回滚事务以恢复数据到原始状态。
本文将详细介绍Oracle回滚事务的SQL语句。
首先,让我们简要了解一下Oracle数据库。
Oracle是一款功能强大的关系型数据库管理系统,广泛应用于各种企业和组织的数据存储和管理。
它提供了丰富的SQL语言,用于对数据库中的数据进行查询、插入、更新和删除等操作。
回滚事务是指在事务执行过程中,将事务中的所有操作撤销,使数据恢复到事务开始前的状态。
在Oracle数据库中,可以通过使用SQL语句来实现回滚事务。
以下是一些常用的Oracle回滚事务的SQL语句:1.使用ROLLBACK命令回滚事务:```ROLLBACK;```这个命令会立即回滚当前事务,将数据库恢复到事务开始前的状态。
需要注意的是,使用ROLLBACK命令会放弃事务中已做的所有更改,因此请在确定要回滚事务时使用。
2.使用ROLLBACK TO命令回滚事务:```ROLLBACK TO SAVEPOINT;```这个命令会将事务回滚到指定的SAVEPOINT。
在使用过程中,可以通过SAVEPOINT命令创建一个保存点,以便在需要时回滚到该点。
这样,在回滚事务时,可以选择性地放弃部分更改,而不是全部回滚。
3.使用COMMIT命令提交事务:```COMMIT;```这个命令会提交当前事务,将事务中的所有更改永久保存在数据库中。
在执行COMMIT命令后,事务中的更改将不再可以通过ROLLBACK命令回滚。
总之,在Oracle数据库中,回滚事务是一种重要的数据恢复手段。
通过使用ROLLBACK和COMMIT命令,可以灵活地控制事务的执行过程,确保数据的安全性和一致性。
oracle存储过程事务写法

oracle存储过程事务写法
在Oracle中,你可以使用存储过程来执行事务。
以下是一个简单的示例,展示了如何在存储过程中使用事务:
```sql
CREATE OR REPLACE PROCEDURE sample_procedure AS
BEGIN
-- 开始事务
SET TRANSACTION NAME sample_transaction;
-- 执行一些数据库操作
INSERT INTO some_table (column1, column2) VALUES ('value1', 'value2');
-- 如果所有操作都成功,则提交事务
COMMIT;
EXCEPTION
WHEN OTHERS THEN
-- 如果出现错误,回滚事务
ROLLBACK;
RAISE;
END;
/
```
在这个示例中,我们首先使用`SET TRANSACTION`语句来开始一个新的事务,并给它一个名称(在这个例子中是`sample_transaction`)。
然后,我们执行一些数据库操作(在这个例子中是插入一条记录到`some_table`表中)。
如果所有操作都成功,我们使用`COMMIT`语句来提交事务,使更改永久化。
如果出现任何错误,我们使用`ROLLBACK`语句来回滚事务,撤销所有未提交的更改。
最后,我们使用`RAISE`语句来重新抛出异常,以便在调用存储过程的代码中处理它。
请注意,这只是一个简单的示例,实际的存储过程可能会更复杂。
你需要在存储过程中仔细处理异常,确保在出现错误时能够正确地回滚事务。
oracle xa 原理

oracle xa 原理
Oracle XA 是一种用于分布式事务处理的标准。
它允许事务跨多个资源管理器(如数据库管理系统)进行协调和提交。
在 Oracle 数据库中,XA 是通过 XA 接口来实现的。
XA 事务的原理涉及到两阶段提交(Two-Phase Commit)协议。
在第一阶段,事务协调器(Transaction Coordinator)向所有涉及的资源管理器发送一个询问消息,询问它们是否可以提交事务。
如果所有资源管理器都同意提交,那么在第二阶段,协调器会发送一个提交消息,要求各个资源管理器执行事务提交操作。
如果其中任何一个资源管理器在第一阶段回复不能提交,或者在第二阶段执行提交失败,那么整个事务将会回滚。
在 Oracle 数据库中,XA 事务由应用程序通过 XA 接口进行控制。
应用程序通过调用 XA 接口的函数来开始、准备、提交或回滚一个分布式事务。
Oracle 数据库会根据接收到的 XA 接口函数调用来执行相应的事务管理操作,以确保事务的一致性和持久性。
另外,Oracle XA 事务还涉及到资源管理器(如数据库)的配置和管理。
在配置数据库以支持 XA 事务时,需要确保数据库连接
池、事务管理器等组件都正确地支持 XA 协议,并且在分布式事务执行过程中能够正确地响应协调器的请求。
总的来说,Oracle XA 事务的原理涉及到分布式事务的协调和管理,通过 XA 接口和两阶段提交协议来确保事务的一致性和持久性,同时也需要数据库和应用程序的配合来实现分布式事务的正确执行。
oracle 数据库事务实现原理

oracle 数据库事务实现原理
Oracle数据库事务实现的原理涉及到数据库管理系统的核心功
能和ACID特性。
事务是一系列数据库操作的逻辑单元,要么全部执
行成功,要么全部失败回滚。
Oracle数据库通过以下几个方面来实
现事务的原理:
1. 日志记录,当事务开始时,Oracle会将事务的操作记录在
日志文件中,包括对数据的修改、插入和删除操作。
这样即使数据
库发生故障,也可以通过日志文件来恢复事务的一致性。
2. 事务隔离级别,Oracle数据库支持多种事务隔离级别,如
读未提交、读已提交、可重复读和串行化。
这些隔离级别可以确保
并发事务之间的数据一致性和隔离性。
3. 锁机制,Oracle数据库使用锁来控制事务对数据的访问,
包括共享锁和排他锁。
这样可以防止多个事务同时对同一数据进行
修改,保证数据的一致性和完整性。
4. 回滚段,Oracle数据库使用回滚段来存储事务的修改操作,如果事务失败或回滚,可以通过回滚段来还原数据的状态。
5. 事务日志,Oracle数据库会记录事务的提交和回滚操作,保证事务的持久性和原子性。
这样即使数据库发生故障,也可以通过事务日志来恢复数据的一致性。
总的来说,Oracle数据库通过日志记录、事务隔离级别、锁机制、回滚段和事务日志等多种机制来实现事务的原理,确保数据的一致性、隔离性、持久性和原子性,从而保证数据库操作的安全性和可靠性。
Oracle 存储过程中的事务处理
Oracle存储过程中的事务处理当在SQL*Plus中进行操作时,用户可以使用COMMIT语句将在事务中的所有操作“保存”到数据库中。
如果用户需要撤销所有的操作,则可以使用ROLLBACK语句回退事务中未提交的操作,使数据库返回到事务处理开始前的状态。
在PL/SQL过程中,不仅可以包括插入和更新这类的DML操作,还可以包括事务处理语句COMMIT和ROLLBACK。
Oracle支持事务的嵌套,即在事务处理中进行事务处理。
在嵌套的事务处理过程中,子事务可以独立于父事务处理进行提交和回滚。
对于过程而言,每个过程就相当于一个子事务,用户可以在自己事务处理的任何地方调用该过程,并且无论父事务是提交还是回滚,用户都可以确保过程中的子事务被执行。
下面通过一个示例演示过程中的事务处理。
(1)以用户SCOTT身份连接到数据库,并建立两个表TEMP和LOG_TABLE。
SQL> create table temp(n number);表已创建。
SQL> create table log_table(2 username varchar2(20),3 message varchar2(4000));表已创建。
(2)建立一个存储过程INSERT_INTO_LOG,用于向表LOG_TABLE添加记录。
SQL> create or replace procedure insert_into_log(msg_param varchar2) is2 pragma autonomous_transaction;3 begin4 insert into log_table(username,message)5 values(user,msg_param);6 commit;7 end insert_into_log;8 /过程已创建。
其中,PRAGMA AUTONOMOUS_TRANSACTION语句表示自动开始一个自治事务,实际上该语句也可以省略。
oracle的undo使用原理
oracle的undo使用原理
Oracle数据库中的Undo使用原理是非常重要的,它涉及到数据库事务的一致性和并发控制。
Undo是Oracle数据库中用来存储事务变化前的数据副本的机制,它可以用来回滚事务,提供一致性读取和支持多版本并发控制。
在Oracle数据库中,当一个事务对数据进行了修改,数据库会首先将修改前的数据保存到Undo表空间中,然后再进行实际的数据修改。
这样做的好处是,如果事务需要回滚,数据库可以通过Undo 中的数据副本将数据恢复到事务开始之前的状态。
这就保证了数据库事务的一致性。
另外,Undo也支持多版本并发控制。
当一个事务对数据进行修改时,其他事务可能还在读取这个数据,这时候就需要保证读取的数据是一致的。
通过Undo中的数据副本,数据库可以提供一致性读取,即使数据正在被修改,读取操作也不会受到影响。
Undo的使用原理也与数据库的回滚段和事务日志密切相关。
当一个事务需要回滚时,数据库会根据Undo中的数据副本和事务日志将数据恢复到原来的状态。
这就保证了数据库的一致性和可靠性。
总之,Oracle数据库中的Undo使用原理是非常重要的,它保证了数据库事务的一致性和并发控制,是数据库系统中不可或缺的一部分。
对于数据库管理员和开发人员来说,了解Undo的使用原理可以帮助他们更好地管理数据库事务和优化数据库性能。
数据库事务处理流程详解
数据库事务处理流程详解1.开始事务:事务处理的第一步是开始一个事务。
这需要应用程序发送一个BEGIN或STARTTRANSACTION语句给数据库管理系统。
2.执行SQL操作:一旦事务开始,应用程序可以执行各种SQL操作,如插入、更新和删除数据等。
这些操作可以是单个操作,也可以是一系列操作。
3.提交或回滚事务:执行完所有的SQL操作后,应用程序需要决定是提交事务还是回滚事务。
如果应用程序使用的是COMMIT语句,则提交事务;如果使用的是ROLLBACK语句,则回滚事务。
提交事务意味着将所有的操作永久保存到数据库中,回滚事务则是撤销所有的操作。
4.持久化数据:如果应用程序选择提交事务,数据库管理系统将完成所有的操作,将数据永久保存到数据库中。
如果应用程序选择回滚事务,数据库管理系统将撤销所有的操作,恢复到事务开始时的状态。
5.结束事务:无论事务是提交还是回滚,结束事务是必须的。
应用程序需要发送一个END或COMMIT语句给数据库管理系统来结束事务。
在结束事务之后,应用程序可以开始下一个事务或者执行其他的操作。
在上述流程中,事务的一致性和完整性是非常重要的。
如果事务遇到错误或者异常情况,必须回滚事务,以确保数据库的一致性。
事务处理还需要考虑并发操作的情况,以避免数据的混乱和不一致。
为了保证事务的一致性和完整性,数据库管理系统提供了ACID属性:1. 原子性(Atomicity):事务中的所有操作要么全部执行,要么全部不执行。
如果在事务执行过程中发生错误,那么所有的操作都将被撤销。
2. 一致性(Consistency):事务的执行必须使数据库从一个一致性状态转移到另一个一致性状态。
也就是说,事务开始和结束时,数据库必须满足一定的一致性约束。
3. 隔离性(Isolation):事务的执行应该与其他事务是隔离的,即每个事务的执行应该和其他事务的执行是独立的,互不干扰。
4. 持久性(Durability):一旦事务提交,其所做的修改将永久保存在数据库中,即使发生了系统崩溃或者故障。
oracle savepoint用法-概述说明以及解释
oracle savepoint用法-概述说明以及解释1. 引言在编写本文时,需要让读者对Oracle Savepoint有一个清晰的概念和基本的了解。
因此,在1.1 概述部分,我们可以简要介绍Oracle Savepoint是什么以及它在Oracle数据库中的作用。
概述部分可以如下所写:Oracle Savepoint是Oracle数据库中的一个重要概念,它用于在事务中设置一个回滚点,以便在事务执行过程中出现错误或者需要回滚之前的一部分操作时,可以回滚到该回滚点,以保证数据的一致性和完整性。
在一个大型事务中,可能会包含多个步骤和操作,当事务执行过程中出现错误或者需要撤销之前的操作时,如果不使用Savepoint进行管理,整个事务将会被完全回滚,包括已经成功执行的操作。
而使用Savepoint,则可以选择性地回滚到某个指定的回滚点,而不影响其他已经完成的操作。
除了进行数据恢复和错误处理外,Savepoint还可以用于在事务中设置临时的工作点,在该点之后的操作可以被认为是一个独立的子事务。
这对于在一个大型事务中进行部分提交和回滚操作是非常有用的。
在本文的后续部分中,我们将深入研究Oracle Savepoint的定义和用法,并探讨它在实际应用中的一些注意事项。
1.2 文章结构本文将按照以下结构进行阐述和讨论Oracle Savepoint的用法:1. 引言:介绍本文的背景和目的,简要说明Oracle Savepoint的概念和作用。
2. 正文:2.1 Oracle Savepoint的定义:详细解释Oracle Savepoint是什么,它在数据库事务中的作用和意义。
2.2 Oracle Savepoint的用法:探讨Oracle Savepoint的具体用法和应用场景,介绍如何在自己的代码中使用Savepoint实现事务处理的灵活性和控制性。
3. 结论:3.1 总结:总结本文的主要内容,强调Oracle Savepoint对于数据库事务的重要性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 可以想象这将引起多大的混乱。
目的
• 幸运的是,银行通过控制事务处理流程可以确保数据一 致性。
• 在本课中,您将学习如何管理数据更改流程以及如何提交 或取消对数据库的更改。
• Oracle Application Express 不支持 COMMIT、ROLLBACK 和 SAVEPOINT,这是由于 Oracle Application Express 管理数据 库连接的方式造成的。
事务处理
• 事务处理是所有数据库系统的基本概念。 • 事务处理允许用户对数据进行更改,然后决定是保存还是
放弃所做的更改。 • 数据库事务处理将多个步骤绑定到一个逻辑工作单元。
事务处理• 事务处理由以下语句 Nhomakorabea一组成:
– 几条 DML 语句,这些语句对数据进行一次更改,且数据保持 一致
– DML 语句包括 INSERT、UPDATE、DELETE 和 MERGE – 一条 DDL 语句,例如 CREATE、ALTER、DROP、RENAME 或
对数据库执行插入、更新或删除操作时,Oracle Server 会 在数据发生更改前创建其副本,并将其写入还原(回退) 段中。 • 用户 B 看到的仍是更改开始之前的数据库,他看到的是 还原段中的数据“快照”。
读一致性
• 将更改提交 (COMMIT) 到数据库之前,只有正在修改数据 的用户能够看到更改;其他所有人看到的都是还原段中的 快照。
事务处理示例
• 数据将恢复到它在保存点 1 (SAVEPOINT one) 时的状态。
INSERT INTO 副本_部门(部门标识, 部门名称, 经理标识, 位置标识)
VALUES(130, 'Estate Management', 102, 1500);
UPDATE 副本_部门 SET 部门标识 = 140;
TRUNCATE)语句 – 发出了 DCL(GRANT 或 REVOKE)语句 – 用户从 Oracle 数据库实用程序正常退出,导致隐式提交当前
的事务处理
事务处理何时开始或结束?
• 一个事务处理结束后,下一个可执行的 SQL 语句会自动开 始下一个事务处理。
• 由于 DDL 语句或 DCL 语句会自动提交,因此将隐式结束 事务处理。
漏掉了 WHERE 子句
ROLLBACK TO SAVEPOINT one;
COMMIT;
事务处理何时开始或结束?
• 事务处理从第一个 DML(INSERT、UPDATE、DELETE 或 MERGE)语句开始。
– 事务处理在出现以下任一情况时结束: – 发出了 COMMIT 或 ROLLBACK 语句 – 发出了 DDL(CREATE、ALTER、DROP、RENAME 或
UPDATE 副本_部门 SET 经理标识 = 101 WHERE 部门标识 = 60;
SAVEPOINT one;
• 在执行了一条 INSERT 语句和一条 UPDATE 语句(在下一张 幻灯片上)之后,用户发现最后的 UPDATE 语句未包含 WHERE 子句。
• 为了纠正该错误,用户发出了 ROLLBACK TO SAVEPOINT one 语句。
TRUNCATE – 一条 DCL 语句,例如 GRANT 或 REVOKE
事务处理模拟
• 某银行数据库包含各种客户帐户的余额,以及其他分行的 存款总余额。
• 假设某个客户想要从其帐户中取款并进行转帐,将所取资 金存入其他分行的另一个客户的帐户中。
事务处理模拟
• 完成这项业务涉及多个不同的步骤,不是一个简单操作就 能实现。
• 发出 COMMIT 语句后,当前事务处理结束,所有待定更改变为永 久性更改。
– ROLLBACK:允许用户放弃对数据库所做的更改。
• 发出 ROLLBACK 语句后,将放弃所有待定更改。
控制事务处理
• 使用以下语句可以控制事务处理:
– SAVEPOINT:在事务处理中创建一个标记,通过该标记将事 务处理分成几个较小的部分。
• 在提交事务处理之前,事务处理期间所做的每项数据更改 都是临时性的。
数据一致性
• 想象一下,您花了几个小时更改雇员数据,没想到其他人 正在输入与您所做的更改相冲突的信息!
• 要防止此类干扰或冲突并允许多个用户同时访问同一数据 库,数据库系统需要应用一种称为“读一致性”的自动实 现机制。
读一致性
– ROLLBACK TO SAVEPOINT:允许用户将当前事务处理回退到 指定的保存点 (Savepoint)。
• 如果产生错误,用户可以发出ROLLBACK TO SAVEPOINT 语句, 以便仅放弃那些在建立保存点之后所做的更改。
事务处理示例
• 在下面的示例中,用户发出了一个 UPDATE 语句,紧接着 又创建了保存点 1 (SAVEPOINT one)。
Oracle中数据库事务处理
课程目标
在本课中,您将学会: • 阐述术语 COMMIT、ROLLBACK 和 SAVEPOINT 在数据事务
处理中的含义 • 列出 COMMIT、ROLLBACK 和 SAVEPOINT 语句的三个优点 • 说明能够控制事务处理流程为什么对业务很重要
目的
• 如果银行缺乏有条不紊的存取款记录流程,那会怎么 样呢?
• 读一致性可确保所有用户看到的数据视图始终是一致的。 • 读取者看不到正在被更改的数据。 • 保证写入者对数据库所做的更改是一致的。 • 一个写入者所做的更改不会破坏另一个写入者正在进行的
更改,也不会与之冲突。
读一致性
• 读一致性是自动实现的。 • 包含数据库部分信息的副本保存在还原段中。当用户 A
• 两家分行希望确保事务处理中的所有步骤要么都执行,要 么都不执行,并且在系统崩溃的情况下事务处理不会停留 在部分完成状态。
• 将取款和存款步骤归入一个事务处理可以保证这一点。 • 事务处理会完全执行或根本不执行。
控制事务处理
• 使用以下语句可以控制事务处理:
– COMMIT:表示一个时间点,在该时间点用户已完成要对逻 辑上归于一组的内容进行的全部更改,并且由于没有任何错 误,用户已准备好保存所做的更改。