`
t42dw
  • 浏览: 58624 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

Oracle 自制事务

阅读更多

Oracle 自制事务是指的存储过程和函数可以自己处理内部事务不受外部事务的影响,使用方法很简单如下:

 

  FUNCTION F_GET_KEY_GEN(P_KYE_NAME     IN VARCHAR2)
    RETURN VARCHAR2 as
    pragma autonomous_transaction;   --设置为自制事务--
    V_RECORD   NUMBER;
  BEGIN
 commit; 
  END;

 

使用场景还要从项目中的一个BUG说起,项目中的工作流需要产生一个流水号,为了保存流水号的唯一再查找最新流水号的sql后增加了"FOR UPDATE WAIT 5"这样可以确保sql所查出来的值是所有事务提交后的值,如还有事务未提交等待5秒后出错。

      SELECT T.KEY_VALUE, T.THIS_DATE
        INTO V_KEY_ROW.KEY_VALUE, V_KEY_ROW.THIS_DATE
        FROM T_KEYTABLE T
       WHERE T.KEY_NAME = P_KYE_NAME
         AND ROWNUM = 1
         FOR UPDATE WAIT 5;

 

上面方法可以确保流水号最新但是带来了一个问题,如果创建流水号的操作位于一个业务操作很复杂耗时很长的事务当中,当这个事务并发时就会出现流水号创建错误!这个BUG解决方法我就是使用的自制事务,让创建流水号自己提交事务且对别的事务没有影响。

 

附件中有流水号产生的函数

 

 

 

 

分享到:
评论

相关推荐

    oracle 事务 回滚 存储过程

    本文将深入探讨“Oracle事务回滚存储过程”这一主题,旨在理解其核心概念、工作原理以及实际应用。 ### Oracle事务 在数据库操作中,事务是一系列操作的集合,这些操作要么全部成功,要么全部失败。事务具有ACID...

    oracle自治事务(Trigger)

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

    Oracle事务与锁定

    Oracle事务与锁定是数据库管理系统中的核心概念,它们对于确保数据的完整性和一致性至关重要。事务是数据库操作的基本单元,它封装了一系列的数据库操作,确保这些操作要么全部成功,要么全部失败,从而保持数据库的...

    Oracle自治事务的介绍(Autonomous_Transactions)

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

    在.NET中如何使用Oracle数据库事务

    在.NET环境中,与Oracle数据库进行交互并管理事务是常见的任务,尤其对于开发涉及数据操作的应用程序至关重要。在本文中,我们将探讨如何在VB.NET和C#中使用Oracle数据库事务,重点在于理解数据库事务的基本概念,...

    在oracle中使用事务

    在Oracle数据库中,事务处理是确保数据完整性和一致性的重要机制。事务可以被看作是一系列操作的集合,这些操作作为一个整体被执行,要么全部成功,要么全部失败。这遵循了ACID(原子性、一致性、隔离性、持久性)...

    java Oracle事务处理

    java 代码写的关于Oracle的 事务处理

    asp.net 中使用oracle数据库事务

    ### ASP.NET 中使用 Oracle 数据库事务 #### 一、引言 在 ASP.NET 应用程序中集成 Oracle 数据库,并实现高效且可靠的事务处理是非常重要的。事务管理是确保数据一致性和完整性的重要手段之一,尤其是在涉及多条 ...

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

    Oracle 数据完整性嵌套事务调用分析研究 Oracle 数据库中,数据完整性是指数据的正确性、完整性和一致性。为了保护数据的完整性,我们可以使用多种方法,例如数据表的主键约束、外键约束、触发器等等。在处理数据...

    oracle 在java中的事务处理和异常回滚。

    在Java编程中,Oracle数据库是常用的后端存储系统,而事务处理和异常回滚是确保数据一致性、完整性和可靠性的关键机制。以下是对这个主题的详细讲解。 首先,Oracle JDBC驱动程序是Java与Oracle数据库之间通信的...

    oracle ITL事务槽

    Oracle ITL(Interested Transaction List)事务槽是数据库管理系统Oracle中用于处理并发事务处理的重要组成部分,主要存在于数据块的内部。ITL的主要职责是记录在数据块中发生的事务,无论是已提交还是未提交的。每...

    ORACLE-事务ORACLE-TRANSACTION-信息管理与信息系统本科毕业设计.doc

    ORACLE 事务管理 ORACLE 事务管理是数据库管理系统中的一种机制,旨在确保数据库的一致性和完整性。在 ORACLE 中,事务是指一系列操作的集合,这些操作作为一个单元来执行,以确保数据库的一致性和完整性。 ORACLE...

    Oracle事务处理

    Oracle 事务处理是数据库操作的核心概念,它确保了数据的完整性和一致性。事务是一组逻辑操作,这些操作被视为单个单元,必须全部成功执行或全部回滚,以防止数据不一致。这种机制对于多用户环境中的并发操作尤其...

    oracle事务处理

    Oracle 事务处理 Oracle 事务处理是指在 Oracle 数据库中对数据进行操作时,确保数据的一致性和完整性的一种机制。事务处理是 Oracle 数据库的核心功能之一,通过事务处理,数据库可以确保数据的一致性和完整性,...

    WebSphere MQ与Oracle 数据库的XA事务(两阶段提交)实现

    在与Oracle数据库交互时,为了确保数据的一致性和完整性,我们可以使用分布式事务(Distributed Transaction)机制,具体表现为XA事务。XA事务是一种两阶段提交(Two-Phase Commit, 2PC)协议,广泛应用于多资源协调...

    Oracle中关于事务槽(ITL)

    Oracle数据库中的事务槽(ITL, Incident Transaction List)是数据块内部管理并发事务的重要机制。在Oracle中,每个数据块可以包含多个事务槽,用于跟踪并发事务对数据块的更改。当事务对数据块进行读写操作时,就会...

    Oracle 临时表用法

    Oracle临时表是一种特殊的表,用于存储临时数据,通常用于事务处理或特定会话期间的数据处理。根据数据保留方式的不同,Oracle临时表可以分为两大类: 1. **会话级临时表**:这类临时表中的数据仅在当前会话期间...

    MySQL或Oracle通过ODBC与C#建立连接和进行事务处理

    ### MySQL或Oracle通过ODBC与C#建立连接和进行事务处理 #### 一、概述 在现代企业级应用开发中,数据库的选择对于整个系统的稳定性和性能有着至关重要的影响。随着多语言开发的需求日益增长,如何让不同的编程语言...

Global site tag (gtag.js) - Google Analytics