PLSQL 触发器通过 SQL 加载器触发

Posted

技术标签:

【中文标题】PLSQL 触发器通过 SQL 加载器触发【英文标题】:PLSQL Trigger get fired through SQL loader 【发布时间】:2013-04-15 10:37:08 【问题描述】:

当我们通过 SQL 加载器插入时,表是否被触发? 请详细说明

【问题讨论】:

【参考方案1】:

如果使用常规加载,Oracle 将执行INSERT 触发器,但not when you use direct load(带有选项DIRECT=true):

使用传统的路径加载方法,行数组是使用标准 SQL INSERT 语句插入的——完整性约束和插入触发器会自动应用。但是当您使用直接路径加载数据时,SQL*Loader 会禁用一些完整性约束和所有数据库触发器

【讨论】:

【参考方案2】:

如果您执行常规加载或外部表加载,触发器将触发并检查所有活动约束。

如果您执行直接路径加载,则会绕过触发器和约束检查。

您可以在SQL Loader documentation 中阅读更多信息(指向 Oracle 10g 文档的链接)。

【讨论】:

以上是关于PLSQL 触发器通过 SQL 加载器触发的主要内容,如果未能解决你的问题,请参考以下文章

PLSQL详解SQL中的trigger(触发器)

(SQL/PLSQL) 在触发期间显示更新的行

oracle(sql)基础篇系列——PLSQL游标存储过程触发器

PLSQL 触发器引发应用程序错误不起作用

plsql触发器自动插入ID

PLSQL 触发器 ORA 01403 未找到数据