插入触发器后发生突变错误

2023-12-05

下面的代码给出了一个变异错误。 任何人都可以帮助解决这个问题吗?

    CREATE OR REPLACE TRIGGER aso_quote_cuhk_trigger
    BEFORE INSERT
    ON aso.aso_quote_headers_all
    FOR EACH ROW
    BEGIN
     UPDATE aso.aso_quote_headers_all
     SET quote_expiration_date=sysdate+90
     where quote_header_id=:new.quote_header_id;
    END;
    /

在oracle中有两个级别的触发器:行级和表级。

执行行级触发器for each row。表级触发器按语句执行,即使语句更改了多于一行。
在行级触发器中,您无法选择/更新具有触发器的表本身:您将收到变异错误。

在这种情况下,不需要 UPDATE 语句。试试这个:

CREATE OR REPLACE TRIGGER aso_quote_cuhk_trigger
BEFORE INSERT
ON aso.aso_quote_headers_all
FOR EACH ROW
BEGIN
 :new.quote_expiration_date=sysdate+90;     
END;
/

EDITRajesh 提到,在插入新行之前,OP 可能希望更新该行中的所有其他记录aso_quote_headers_all table.

嗯,这是可行的,但是有点棘手。要正确执行此操作,您将需要

  1. 一个 pl/sql 包和包头中由触发器修改的变量。该变量可以是一个包含新插入记录 ID 的列表。插入触发器后的行级别会将新 ID 添加到列表中。这个包变量的内容对于每个不同的会话都会不同,所以我们称这个变量为session_variable.
  2. 插入触发器后的行级别,这会将新 ID 添加到session_variable.
  3. 插入触发器后的表级别将从session_variable,处理ID,然后将其从session_variable。该触发器可以对 aso_quote_headers_all 执行必要的选择/更新。处理新插入的 ID 后,此触发器应确保将其从session_variable.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

插入触发器后发生突变错误 的相关文章

  • 转换不同世纪的日期

    我有暂存表 其中包含格式为 mm dd yy 的字符串形式的日期 我有 Oracle 11g 程序在加载到主表之前将字符串转换为日期格式 我在用着to date 03 20 34 mm dd rr 转换为日期格式 输出错误为 03 20 2
  • 如何捕获 PL/SQL 块中的唯一约束错误?

    假设我有一个 Oracle PL SQL 块 它将一条记录插入表中 并且需要从唯一约束错误中恢复 如下所示 begin insert into some table some values exception when update som
  • ORA-12154: TNS: 无法解析指定的连接标识符

    当我安装服务器版本和现有的 Oracle 10g 客户端版本时 问题就开始了 背景 安装了 Oracle 客户端版本 10g 位于 c oracle 以连接到位于其他国家 地区的数据库 所以我们只能连接到它并且对它的访问权限有限 路径 gt
  • SQL Fiddle 输出错误

    其实我对 PL SQL 还很陌生 我在 SQL Fiddle 中使用 oracle pl sql 创建了下表 create table Employee name varchar2 100 id integer salary integer
  • PLS-00103:遇到符号“CREATE”

    这个包有什么问题 因为它给出了错误 CREATE OR REPLACE PACKAGE PKG SHOW CUST DETAILS AS PROCEDURE SHOW CUST DETAILS myArg VARCHAR2 END PKG
  • oracle lag 函数与 group by

    我有一个查询忽略从前一个值增加的值 例如 采用下表 col1 col2 col3 5 1 A 4 2 A 6 3 A 9 4 B 8 5 B 10 6 B 现在进行以下查询 select col1 from select col1 lag
  • Oracle PL/SQL 将行类型作为构造函数参数传递

    是否可以将 table rowtype 作为构造函数中的参数传递 我有这样的东西 这有效 CREATE OR REPLACE TYPE shape AS OBJECT name VARCHAR2 30 area NUMBER CONSTRU
  • 将十六进制转换为字符串

    我想用HEXTORAW 从 ASCII 十六进制代码 30 获取 char 值 ASCII HEX 30 应返回 varchar 0 该怎么做呢 是HEXTORAW 正确的功能 你可以使用utl raw http docs oracle c
  • Oracle SQL——从字符串中删除部分重复项

    我有一个表 其中有一列包含字符串 如下所示 static text here 1abcdefg1abcdefgpxq 从这个字符串1abcdefg重复两次 所以我想删除该部分字符串 然后返回 static text here 1abcdef
  • MySQL中是否有类似Oracle中“level”的函数[重复]

    这个问题在这里已经有答案了 我面临一个场景 如果输入是 10 我想要一个数字序列 1 2 3 10 在甲骨文中levelfunction 提供了该功能 我想知道如何在 MySQL 中执行相同的任务 谢谢 您可以在 mysql 中使用此查询
  • 在 plsql 中立即执行

    如何从这段代码中得到结果 EXECUTE IMMEDIATE SELECT FROM table name through for loop 通常的方法看起来像这样 for items in select from this table l
  • Power BI 中的区分大小写

    我想知道是否可以在 Power BI 中配置区分大小写 我在 Oracle 数据库中有数据 其中主键EXample不同于exampLE 但如果我想将其导入到Power BI中 就不行了 任何想法 目前 我认为最好的选择是在查询编辑器阶段为主
  • Oracle/PHP - ORA-00911 更新时的无效字符

    我正在运行一个 PHP 脚本 该脚本从 Oracle 数据库实例更新表 首先 我收到一个 JSON 对象 lot KLMHA17N9N00 requestor B10078 id FRESHLOT username B26696 passw
  • 如何在新的数据库服务器上导入 Oracle 11g RMAN 备份集?

    我有一个使用 RMAN 创建的 Oracle 11g 数据库的备份集 现在我想将备份集导入 恢复到新的空数据库服务器上 我知道创建备份集的命令是 run backup as compressed backupset database tag
  • 使用绑定和空值命中 Oracle 索引的最佳查询

    我有一个表 该表在多个列上有一个索引 其中许多列可以为空 CREATE UNIQUE INDEX UX MYTABLE A B C D E ON MYTABLE A B C D E 现在 我在 C 代码中尝试检查该表并精确命中索引 对于每个
  • 如何打印Oracle中过程的定义?

    oracle中有没有办法查看过程的结构是什么 我正在尝试记录并运行程序 并希望将实际的程序结构存储在我的日志中 您可以查询ALL SOURCE table SELECT text FROM all source WHERE owner lt
  • 创建 SYS_REFCURSOR 并将其作为输入参数从 Java 传递给 Oracle 过程

    我必须与具有 SYS REFCURSOR 作为输入参数的外部 Oracle 过程进行通信 过程 merge objects varchar2 中的 p table name p id array 中 varchar2 SYS REFCURS
  • Oracle 数据库 12c 尝试连​​接时出错:网络适配器无法建立连接

    我第一次安装Oracle数据库12c 我正确地遵循了所有步骤并将其安装在 Windows 7 64 位上 但是当我单击 SQL Developer 并尝试创建新连接时 我输入了用户名和密码等信息 最后单击 测试 按钮 我得到了这个错误消息
  • ROWNUM 的 OracleType 是什么

    我试图参数化所有现有的 sql 但以下代码给了我一个问题 command CommandText String Format SELECT FROM 0 WHERE ROWNUM lt maxRecords command CommandT
  • IO 错误:从读取调用中得到负一

    我的时间和想法都快用完了 我需要使用 Java 和 Oracle 数据库模拟预订整架飞机 我们有一些关于如何执行此操作以及预期内容的说明 但我们的代码始终出现这种非常奇怪和意外的行为 数据库看起来像这样 我们需要有一个不断运行的线程池来模拟

随机推荐

  • 在键上使用 gpg --list-packets 的输出来获取 mpi 值以生成 s 表达式

    我正在尝试使用 gpg 生成的公钥来使用 libgcrypt 进行加密 我在密钥上使用了 list packet 命令来获取密钥的内容 并将 mpi 值解析为 s 表达式 因此 当我尝试使用公钥对会话密钥进行编码时 我收到错误 S 表达式中
  • 为什么 .NET 计时器的分辨率限制为 15 毫秒?

    请注意 我正在询问一些会使用类似的方法每 15 毫秒调用回调函数一次以上的情况System Threading Timer 我不是问如何使用类似的东西来准确地计算一段代码的时间System Diagnostics Stopwatch甚至Qu
  • WebSphere Portal 解码 URL

    如何解码 WebSphere Portal url 例如此网址 wps portal ut p c5 dY7LdoIwAAW hS9ICEnEZSBaKBSKkUfZcAKtKRYMKo 2X197XHtnObO4oAQ3TnJulRxbf
  • 如何在Save之前查询CloudCode中的对象?

    我正在尝试比较新对象与original using 保存前的 CloudCode功能 我需要比较发送的字段update与现有的价值 问题是我无法正确获取对象 当我运行查询时 我总是从发送的对象中获取值 UPDATE 我尝试了一种不同的方法
  • 构建 MPEG2 传输流图的最佳方法

    在 Windows 7 上 Windows Media Player 很好地支持 ts 文件 从某种意义上说 Windows Media Player 知道如何处理此类文件 而无需任何其他编解码器包 但是 如果我尝试使用 graphedit
  • 缺少换行符?

    我已将文件从 HDFS 复制到本地文件系统 全部在 RH linux 上 但是 在复制之后 如果我cat该文件 我看到以下内容 me ac12 cat file copy 0 name string 1 phone string 2 age
  • 计算手机握持位置的高度

    有没有办法计算地面和手机之间的高度 我以为我可以用accelerometer测量身高但是这个帖子考虑到不准确率 建议您不要使用它 如果是这样 我应该采取什么方法来测量手机放置的高度 加速度计 和计时器 可以测量relative高度 如果你从
  • SQL select not a string 不返回 NULL 值

    给出下表和数据 CREATE TABLE temps id int name varchar max INSERT INTO temps VALUES 1 foo INSERT INTO temps VALUES 2 INSERT INTO
  • Windows 批处理文件 - 将环境变量插入可执行调用

    如果我在另一个线程中忽略了这个问题 但我无法找到它 在这里或互联网上的任何地方 我深表歉意 在 Windows XP 中 我通过右键单击设置了以下全局环境变量我的电脑 然后选择属性 gt 高级 gt 环境变量 CUSTOM HOME c s
  • WebView 活动中的 Android 左/右滑动手势(点击链接和垂直滚动)

    已解决 解决方案在下面 我想将 webview 中的导航按钮替换为 2 个滑动手势 左滑动和右滑动 这Android 如何处理从右向左滑动手势链接确实帮助了我 但我遇到了问题 实现此代码后 我无法单击链接 或滚动浏览 webview 活动中
  • spring mvc Rest服务重定向/转发/代理

    我已经使用 spring mvc 框架构建了一个 Web 应用程序来发布 REST 服务 例如 Controller RequestMapping movie public class MovieController RequestMapp
  • 求数组的中位数

    我编写了一些代码 它返回未排序的奇数数组的中位数 但它不返回偶数数组的中位数 我知道 为了找到偶数数组的中位数 你必须取出数组中间的两个数字 对它们进行平均 这就是中位数 我无法将其转换为可用的代码 除了这段代码明显冗长之外 问题似乎出在第
  • 通过 DAO 链接表

    所以我本质上是试图通过 DAO 将表从密码加密的 ACCDB 链接到我正在使用的数据库中 我所做的前提是数据是 用户敏感的 所以我不希望让每个用户都可以访问我前端中的该表 具有前端 后端分离 只有特定用户 我想做的是检查计算机的用户名 如果
  • 如何使用 JavaScript 选择和删除 Illustrator 文档中的每个剪贴蒙版?

    我正在为 Adob e Illustrator CS6 javascript 制作扩展脚本 我需要删除文档的每个剪贴蒙版 我已经有了一个解决方案 但在大文档中它不够快 这是我的代码 var releaseClippingMasks func
  • 调用未定义函数 __() 错误 - phpMyAdmin

    当我想在浏览器上运行 phpMyAdmin 时 会显示以下错误 Fatal error Call to undefined function in usr share phpMyAdmin libraries core lib php on
  • 使用多个数据集训练神经网络 (Keras)

    我正在使用的数据集对应于各个时间序列信号 尽管每个信号代表相同的语义数据 以英里 小时为单位的速度 但每个信号都是唯一的 具有不同的数据点总数 我正在与 Keras 合作 并尝试将基本的神经网络拟合到数据中以对其进行评估 下面是它的 Pyt
  • 选择超链接内的标签问题

    我已经简化了我的页面 这里有
  • 从空手道中的 html 响应中提取 Javascript

    我这里需要帮助 我有一个 POST 请求 它返回带有 HTML 响应的响应 并且该 HTML 响应内部包含 javascript 我需要提取其中显示 checkout TransactionID 的文本 javascript 并使用空手道将
  • tweetsharp 和 api 流?

    我找不到最近的答案 据报道 许多旧帖子中的 Tweetsharp 不支持来自 Twitter 用户流 API 的流式传输 然而 github 显示了一个类 看起来它确实支持流式传输 https github com danielcrenna
  • 插入触发器后发生突变错误

    下面的代码给出了一个变异错误 任何人都可以帮助解决这个问题吗 CREATE OR REPLACE TRIGGER aso quote cuhk trigger BEFORE INSERT ON aso aso quote headers a