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

oracle 触发器与事务

 
阅读更多

(1)如果外部事务撤销,触发器形成的变更是否会撤销?如果触发器操作失败,是否会导致外部SQL失败,从而导致事务撤销
(2) 事务回滚时,触发器形成的变更是否会撤销;
(3) 触发器失败时,外部SQL是否会返回错误;如果会,则研究如何不返回错,如果不会,则研究如何会返回错误;
(4) 触发器失败时(插入两条记录,前者成功,后者失败),事务回滚时触发器形成的变更是否会撤销;
(5) 触发器失败时(插入两条记录,前者成功,后者失败),事务提交时触发器形成的变更是否会撤销;

答 在oracle中,对触发器的限制是:
1。触发器与触发该触发器的SQL语句同属于一个事务,触发器不允许发出任何事务控制语句,如commit、rollback、savepoint或者set transaction,它只能随着外部事务的提交、回滚而提交、回滚。(但在oracle8i 以及更高的版本中,你可以创建作为自治事务而执行的触发器,在这种情况下,触发器可以做提交或回滚操作,而与触发该触发器的外部SQL所在的事务无关)
2。与上面相同,在触发器内调用的所有过程、函数也都不能有事务控制语句,除非它们被声明为自治事务。
3。触发器内,不能声明LONG或LONG RAW变量,并且,:new和ld 也不可以指向触发器所为之定义的表的LONG或者LONG RAW类型的列。
4。在oracle8 及更高版本中,触发器内的代码可以引用和使用LOB类型的列、自定义对象类型的列,但不能修改这些列的值。
5。不允许访问变异表,关于变异表,参考oracle文档

分享到:
评论

相关推荐

    Oracle触发器与存储过程高级编程-第3版itpub.rar

    《Oracle触发器与存储过程高级编程》第3版是一本深入探讨Oracle数据库中触发器和存储过程技术的专业书籍。在Oracle数据库系统中,触发器和存储过程是数据库管理员和开发人员进行复杂业务逻辑处理和数据管理的重要...

    关于oracle触发器before和after的应用问题

    ### Oracle触发器Before和After应用详解 #### 引言 Oracle数据库系统中,触发器是一项核心功能,用于响应特定事件的自动执行代码块。本文旨在深入解析Oracle触发器中的Before和After两种触发时机,以及它们在...

    Oracle触发器实验报告

    Oracle触发器是数据库管理系统中的一种特殊程序,它与数据库表的操作紧密相关,可以在特定的数据操作事件(如INSERT、UPDATE或DELETE)发生时自动执行。在本实验报告中,主要涉及了Oracle触发器与参照完整性约束的...

    Oracle触发器与存储过程高级编程

    在深入探讨《Oracle触发器与存储过程高级编程》这一主题之前,我们首先应当明确Oracle数据库在企业级应用中的核心地位。Oracle数据库以其强大的数据处理能力、高可用性和安全性,成为众多大型企业和组织首选的数据...

    oracle触发器调用存储过程

    "Oracle触发器调用存储过程" Oracle触发器可以调用...Oracle触发器调用存储过程可以通过使用自治事务来解决事务隔离性问题,确保业务逻辑的正确执行。但是,需要注意自治事务的使用规则和注意事项,以避免出现问题。

    Oracle触发器 实例讲解

    5. 防止无效的事务处理:触发器可以防止无效的事务处理,例如防止用户输入无效的数据。 6. 启用复杂的业务逻辑:触发器可以启用复杂的业务逻辑,例如根据业务规则自动执行某些操作。 触发器的组成部分包括: 1. ...

    oracle触发器语法要点

    ### Oracle触发器语法要点 #### 一、触发器概述 Oracle触发器是一种存储过程,它在特定的数据库事件(如INSERT、UPDATE或DELETE)发生时自动执行。触发器可以用于实施复杂的业务规则、数据完整性检查或者自动生成...

    ORACLE触发器、内置程序包教学.doc )

    ### 创建触发器的语法与示例 创建触发器的基本语法结构如下: ```sql CREATE [OR REPLACE] TRIGGER trigger_name {AFTER | BEFORE | INSTEAD OF} {insert | delete | update [OF column[, column]]} [OR {insert |...

    ORACLE触发器在软件开发中的应用11

    Oracle触发器是一种数据库对象,它与特定的表相关联,并在对表执行DML(INSERT, UPDATE, DELETE)操作时自动触发执行。触发器的目的是增强数据的一致性、正确性和规范性。在C/S架构中,触发器是数据库一致性的重要...

    Oracle触发器语法

    - **拒绝不合规操作**:可以防止破坏数据完整性的事务,例如,阻止插入与主键不匹配的外部键。 **使用触发器管理数据冗余**: 冗余数据在某些情况下是必要的,如数据分析和报告。通过使用触发器,特别是在`FOR ...

    oracle触发器的创建和跨数据库查询.zip

    Oracle触发器是数据库对象之一,它允许在特定的数据库事件(如INSERT、UPDATE或DELETE)发生时自动执行一段PL/SQL代码。触发器是数据库级的程序,可以在数据更改前或后执行,用来实现复杂的业务规则和逻辑。在这个...

    oracle自治事务(Trigger)

    自治事务是Oracle触发器的一个强大功能,它使得在触发器内部进行的操作能够独立于外部事务进行。这种独立性有助于实现更复杂的功能,如审计日志记录、数据同步等。通过上述分析可以看出,在实际应用中,合理地利用...

    oracle触发器与存储过程高级编程

    1. 触发器定义:Oracle触发器是一种数据库对象,它在特定的数据库事件(如INSERT、UPDATE或DELETE)发生时自动执行。它们可以用来实施复杂的业务规则,确保数据的完整性和一致性。 2. 触发器类型: - 行级触发器:...

    把ORACLE触发器说透

    【Oracle触发器详解】 Oracle触发器是数据库管理系统中一种强大的工具,它允许开发人员在特定事件发生时自动执行预定义的PL/SQL代码。在Oracle系统中,触发器与存储过程和函数相似,都包含声明、执行和异常处理的PL...

    oracle触发器.doc

    Oracle触发器是数据库对象,它在特定的数据库事件发生时自动执行,比如当数据插入、更新或删除时。触发器可以用于实现复杂的数据管理和业务逻辑,确保数据的一致性和完整性。以下是对Oracle触发器的详细解释: 1. *...

    oracle存储过程和触发器

    ### Oracle存储过程与触发器详解 #### 存储过程与触发器的作用 在软件开发,尤其是数据库相关的项目中,Oracle的存储过程和触发器扮演着举足轻重的角色。它们能够在简化代码、提高效率和增强数据完整性方面发挥...

Global site tag (gtag.js) - Google Analytics