`
sxhyll
  • 浏览: 5866 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

使用ORACLE的自治事务AUTONOMOUS TRANSACTION

阅读更多

    在自治事务里面commit或者rollback不会影响外部事务,可以做到单独成功,单独失败。在实际应用里面可以多多使用,提高开发效率。贴一个例子:

 

autonomous_transaction
create table t (msg varchar2(25));
--自治提交
create or replace procedure Autonomous_Insert
 as
    pragma autonomous_transaction;
 begin
    insert into t values ('Autonomous Insert');
    commit;
 end;

--正常的nonautonomous_insert过程
create or replace procedure NonAutonomous_Insert
 as
 begin
    insert into t values ('NonAutonomous Insert');
    commit;
 end;

--匿名块中非自治事务的行为
 begin
    insert into t values ('Autonomous Block');
    NonAutonomous_Insert;--调用NonAutonomous_Insert过程
    rollback;
 end;

select * from t;
1    Autonomous Block
2    NonAutonomous Insert
--匿名块执行的插入由NonAutonomous_Insert过程提交。这两个数据行都已提交,所以rollback命令没有什么可以回滚。把该过程与自治事务过程的行为进行比较

delete from t;
commit;

 begin
    insert into t values ('Autonomous Block');
    Autonomous_Insert;--调用Autonomous_Insert过程
    rollback;
 end;

select * from t;
1    Autonomous Insert

 

 

---end

 

 

另外,有一位网友写的,可以去看看:

http://hwhuang.iteye.com/blog/650903

0
6
分享到:
评论

相关推荐

    Oracle自治事务的介绍(Autonomous_Transactions)

    Oracle自治事务的介绍(Autonomous_Transactions) Oracle自治事务是一种特殊的数据库事务机制,允许在调用事务的上下文中执行独立的事务。这种机制使用PRAGMA_AUTONOMOUS_TRANSACTION语句来定义自治事务。自治事务...

    oracle自治事务(Trigger)

    ### Oracle自治事务(Trigger)详解 #### 一、概述 Oracle数据库中的触发器是一种存储过程,它被设计为当特定事件发生时自动执行。这些事件包括数据修改操作,如INSERT、UPDATE或DELETE等。触发器可以确保数据的...

    Oracle中怎样用自治事务保存日志表

    要创建一个自治事务,您必须在匿名块的最高层或者存储过程、函数、数据包或触发的定义部分中,使用PL/SQL中的PRAGMA AUTONOMOUS_TRANSACTION语句。在这样的模块或过程中执行的SQL Server语句都是自治的。

    Oracle数据完整性嵌套事务调用分析研究

    在 Oracle 中,我们可以使用 PRAGMA AUTONOMOUS_TRANSACTION 语句来声明自治事务。 例如,在Proc_SaveBill存储过程中,我们可以使用自治事务来生成单据编号: ```sql CREATE OR REPLACE PROCEDURE Proc_SaveBill AS...

    oracle触发器调用存储过程

    Oracle自治事务(Autonomous Transaction)机制可以解决这个问题,确保触发器和存储过程之间的事务独立性。 触发器调用存储过程的过程中可能会出现的问题是,insert语句不是自动提交的,因此当insert语句没有提交时...

    事务与锁定的问题 自治事务

    在这个例子中,`log_msg`过程使用了`PRAGMA AUTONOMOUS_TRANSACTION`指令,使其成为自治事务,即使主事务失败,日志记录也能成功提交。 #### 结论 事务和锁定是数据库管理中至关重要的概念,它们不仅保证了数据的...

    Oracle自治数据库和自动化运维新特性概述.pptx

    8. Machine Learning 加强的自治数据库:Oracle 自治数据库使用机器学习技术来实现自治数据库,提高数据库的智能化和自动化程度。 Oracle 自治数据库的主要特征包括: * 自动化数据库管理 * 政策驱动的自动化 * ...

    基于Oracle自治数据库快速开发智能分析应用.pptx

    另一方面,Autonomous Transaction Processing (ATP) 适合事务处理和混合型工作负载,如事务处理、批量报告、物联网应用以及机器学习应用。 快速供应是Oracle自治数据库的一大亮点。只需回答几个简单的问题,如...

    oracle开发常用知识

    为了声明一个存储过程或函数为自治事务,需要使用`Pragma Autonomous_Transaction`关键字。此声明意味着该存储过程中执行的操作将是独立的,不受外部事务状态的影响。例如: ```sql CREATE OR REPLACE PROCEDURE ...

    富士通内部培训ORACLE资料

    使用`PRAGMA AUTONOMOUS_TRANSACTION`开启自治事务。 13. **在过程中暂停指定时间**:可以使用`DBMS_LOCK.SLEEP`过程来暂停PL/SQL代码的执行,参数为睡眠的秒数。 14. **计算事务时间和日志量**:事务时间可以通过...

    oracle_专家高级编程 中文 第八章

    #### 七、自治事务(Autonomous Transactions) - **自治事务定义**:自治事务是一种特殊的事务类型,它可以嵌套在另一个事务中运行,并且独立于外部事务。这意味着,无论外部事务是否成功,自治事务的结果都会被提交...

    Seata是一种易于使用高性能基于Java的开源分布式事务解决方案

    Seata(Simple Extensible Autonomous Transaction Architecture)是一款由阿里巴巴开源的分布式事务处理框架,设计目标是为微服务架构提供简单易用、高性能的分布式事务解决方案。它致力于解决在大规模分布式系统中...

    oracle

    使用`PRAGMA AUTONOMOUS_TRANSACTION`声明一个过程或函数为自治事务。 ### 6. 变量与参数 PL/SQL中变量和参数的使用至关重要,用于存储和传递数据。变量可以通过`VARIABLE_NAME := expression;`进行赋值,参数则在...

    1z0-931-ADW-0528-converted.pdf

    文件中提到了使用Data Pump迁移Oracle数据库到自治数据库(Autonomous Database),询问了迁移过程中需要预期的两个对象。这涉及到了Data Pump工具的知识点,它是一种Oracle提供的用于数据导入导出的工具。正确的...

    oracle之常用faq.doc

    12. **设置自治事务**:在PL/SQL中,使用`PRAGMA AUTONOMOUS_TRANSACTION`可以在当前事务内部开启新的事务,确保新事务不受外部事务影响。 13. **暂停指定时间**:使用`DBMS_LOCK.SLEEP`函数,如`DBMS_LOCK.SLEEP(5...

    ORACLE之常用FAQ V1.0(整理)

    - **解答:** 自治事务是一种特殊的事务类型,它不受外部事务的影响,即使外部事务失败,自治事务也可以正常提交。在 PL/SQL 中,可以通过 DECLARE 或者 BEGIN 块来声明自治事务。示例代码如下: ```plsql DECLARE...

    oracle之sqlFAQ

    使用 `PRAGMA AUTONOMOUS_TRANSACTION` 可以创建自治事务,确保过程内部的事务不影响外部事务。例如: ```sql FUNCTION Get_SerialNo(i_SerialType NUMBER) RETURN VARCHAR2 IS PRAGMA AUTONOMOUS_TRANSACTION; ...

    Seata 是一款开源的分布式事务解决方案,提供高性能和简单易用的分布式事务服务

    Seata(Simple Extensible Autonomous Transaction Architecture)是一款专为微服务设计的开源分布式事务解决方案,它致力于提供高性能和简单易用的分布式事务服务。在当前的云计算和大数据背景下,分布式系统已经...

    Oracle变异表错误解决方案选择.pdf

    - 使用自治事务(Autonomous Transaction)来处理需要独立提交或回滚的子事务,这可以提高事务处理的灵活性。 总的来说,理解并正确处理Oracle的变异表错误是数据库管理员和开发人员必备的技能,选择合适的解决方案...

Global site tag (gtag.js) - Google Analytics