能否为当前会话禁用 Oracle 触发器?

2024-04-11

我想在将数据插入表之前禁用表上的特定触发器,但是不影响其他用户这可能会改变同一个表中的数据。我找不到任何有记录的方法来做到这一点。这是Oracle 11g。

我能想到的最佳解决方案是创建一个会话变量,并让我的应用程序将其设置为触发器在执行工作之前检查的某个值。

强制性反触发评论:我讨厌触发器。


将变量添加到现有包规范(或创建新包):


enable_trigger boolean := true;  

将触发器中的代码括起来:


if enable_trigger then

end if;  

当您想要“禁用”触发器时,请将变量设置为 false。

最佳实践是将变量放入主体中并编写一个设置过程和一个获取函数。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

能否为当前会话禁用 Oracle 触发器? 的相关文章

  • 如何使用 Oracle 清理死连接?

    现在 我正在针对 Oracle 数据库开发一些新应用程序 有时它们会崩溃或无法正确结束 等等 无论如何 问题是它们有时似乎保持连接打开 我需要在它们之后进行清理 我的问题是 是否有一种方法可以从数据库端确定死连接并清理它们 这是一个页面 涉
  • 在游标内使用 Merge 语句

    我们需要填充一个主表 该表由 20 个不同表中的列组成 我编写了一个存储过程来连接一些返回最大列数的表并将它们放在游标中 现在 我正在使用 for 循环来迭代游标记录 以便可以将它们插入主表中 如何在游标 for 循环内使用合并语句 以便我
  • 使用 JPA 和 Hibernate 将 Java 布尔值映射到 Oracle Number 列

    我在我的模型中创建了这样的属性 public class Client private Boolean active 我的 RDBMS 是 Oracle active列的类型NUMBER 1 0 如何使用Restrictions API实现
  • 获取表的某些列只有空值

    我需要知道一张表的哪些列只有空值 我知道我应该在 user tab columns 中执行循环 但是如何仅检测具有空值的列呢 感谢并抱歉我的英语 要在事先不知道列标识的情况下执行查询 需要使用动态 SQL 假设您已经知道该表不为空 您可以执
  • 增加具有重复组的组的行号

    我正在研究 PLSQL Oracle 12 的查询 其中我需要增加每个组的数据集的行号 我的问题与这个问题类似 增加组上的行号 https stackoverflow com questions 11116275 increment row
  • 停止或终止 JDBC 中长时间运行的查询

    有什么方法可以停止或终止 JDBC 中长时间运行的 Oracle 查询吗 通常最终会重新启动应用程序服务器以使 jdbc 与 Oracle DB 断开连接 寻找类似于 SQL Plus 的功能 Kill session在 Java 或 JD
  • 最新的 Open JDK 8 JAXB 库无法解组具有包含换行符的属性的对象

    我在 Ubuntu 16 04 上使用 Java 最近我升级到使用 oracle java8 installer 包 包版本 8u161 1 webupd8 0 安装的 Open JDK java 版本 1 8 0 161 自从进行此升级以
  • 表中允许的最大列数是多少?

    一个表中允许的最大列数是多少Oracle表 在以下版本中 甲骨文8i 甲骨文9i 甲骨文10g 甲骨文11g 甲骨文12c 每个表的列数限制为 1 000 列8i http www mbjconsulting com oracle link
  • 如何在 Windows 7 上安装 ROracle 软件包?

    我正在尝试在 Windows 7 客户端上安装 ROracle 包 我安装了 Oracle Instant 客户端和 Rtools 安装了 DBI 包 设置了 OCI32 LIB 环境变量 但是当我尝试从命令行安装时 C Temp gt R
  • Oracle SQL Regexp_replace 匹配

    这是我需要完成的一个时髦的匹配 A5 1 9 11 2 需要成为 A05 01 09 11 02 DOT 部分的数量从没有到很多不等 字母 A 将始终存在并且始终为 1 个字符 我想使用 regexp replace 函数 以便将其用作排序
  • 从数字字符串生成行

    我有一个 Oracle 18c 表 其中包含如下字符串 select 0 5 0 10 10 11 18 30 0 33 54 50 10 33 54 60 10 43 54 as multipart lines There are mor
  • 更改 Oracle 11g 或 12c 中的表/列/索引名称大小

    我使用oracle 11g并且需要名称大小大于30个字符 我知道11g中的最大大小是30个字符 我可以更改这个最大尺寸吗 Oracle 12c 中表 列 索引名称的最大大小是多少 数据库对象名称位于11g https docs oracle
  • Oracle SQL 上的条件 SUM

    我通过以下方式获得数据 ITEM LOCATION UNIT RETAIL QUANTITY 100 KS 10 10 200 KS 20 30 我想要正数量的总和 数量 gt 0 和负数量的总和 数量 如何根据条件获得这些列的总和 您可以
  • Oracle:两个日期之间的天数和排除工作日如何处理负数

    我有两个日期列 并尝试测量两个日期之间的天数 不包括周末 我得到一个负数 需要帮助解决 Table CalendarDate DayNumber FirstAssgn FirstCnt DayNumber2 Id BusinessDays
  • 防止 sqlplus 截断列名,无需单独的列格式

    默认情况下 sqlplus 将列名截断为基础数据类型的长度 我们数据库中的许多列名称都以表名称为前缀 因此在截断时看起来相同 我需要在锁定的生产环境中向远程 DBA 指定 select 查询 并拖回假脱机结果以进行诊断 列太多 无法指定各个
  • MySQL 监听通知等效项

    是否有相当于 PostgresQL 的notify http www postgresql org docs 9 1 static sql notify html and listen http www postgresql org doc
  • 如何在“Where”子句之前写“Order By”子句

    我想写一个ORDER BY我之前的子句WHERE条件 因为我需要将结果截断为 10 但我需要首先按字母顺序对它们进行排序 我知道你不能把ORDER BY before WHERE那我该怎么办呢 我需要做类似以下的事情 SELECT FROM
  • 在 PLSQL Oracle 中抛出特定错误消息...在休眠中捕获?

    是否可以在 PL SQL oracle 存储过程中抛出特定的错误消息 并在调用它时在 Hibernate 中捕获它 您可以从 PL SQL 代码中抛出用户定义的错误消息 20000 到 20999 之间的错误代码保留用于用户指定的错误消息
  • Oracle 中的 MD5 (DBMS_OBFUSCATION_TOOLKIT.MD5)

    我正在尝试编写一个函数 从我到处收集的位中获取 MD5 哈希值 我想获得哈希的小写十六进制表示 到目前为止我有这个 CREATE OR REPLACE FUNCTION MD5 CADENA IN VARCHAR2 RETURN DBMS
  • 处理ORACLE异常

    我需要处理ORA 01400 错误 http www techonthenet com oracle errors ora01400 php 无法使用异常句柄将 NULL 插入 SCHEMA TABLE NAME COLUMN NAME O

随机推荐