ORA-04088(ORA-04084): cannot change NEW values for this trigger type

2023-11-06

>>>bug背景>>>

bug来源一个定时任务的删除操作。这里需要删除原来数据,然后插入定时采集到的数据。因采集到的数据中没有id这个字段,所以插入这个过程需要借助oracle的触发器,来自动生成一个id。最终我写的触发器逻辑跟删除操作,产生冲突,所以报错。

// 以下sql 可用于插入数据自动生成id的功能,仅仅在数据库层面就可以完成

// 创建队列 
CREATE SEQUENCE RM_LINK_OLT_SEQUENCE
INCREMENT BY 1
START WITH 1
NOMINVALUE
NOMAXVALUE
NOCYCLE

// 执行查看是否存在序列
select RM_LINK_OLT_SEQUENCE.NEXTVAL from dual;

// 创建触发器 (依托队列生成id)

CREATE OR REPLACE TRIGGER RM_LINK_OLT_SEQ_TRIGGER
   BEFORE INSERT or UPDATE or DELETE ON RM_LINK_OLT 
   FOR EACH ROW
 BEGIN
   SELECT RM_LINK_OLT_SEQUENCE.NEXTVAL INTO :NEW.ID FROM DUAL;
END TR_FCBOOK;

// 查询触发器
select * from all_source where type='TRIGGER' AND name='RM_LINK_OLT_SEQ_TRIGGER';

// 删除触发器
drop trigger RM_LINK_OLT_SEQ_TRIGGER

>>>错误截图>>>

 >>>解决>>>

1、我的报错是 ORA-04088 ,直接删除触发器中的 or DELETE ,然后执行,删除操作就可以了。

查询下:

 修改后,执行一次这个定时任务,结果成功采集到数据:

2、如果是 ORA-04084,该错误可能是发生在你创建触发器的时候,可以看看是不是你的触发器执行的时机不对,如下:

将 AFTER 改为 BEFORE 即可创建。

>>>拓展>>>

直接在数据库操作,还是上面的触发器。

数据库修改前:

执行操作:

 

修改后:

 

你会发现,每一次insert,id自动递增一个,而update操作,则会覆盖之前的那个id,生成新的id。 

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

ORA-04088(ORA-04084): cannot change NEW values for this trigger type 的相关文章

  • 2021年Linux技术总结(四):Linux 驱动

    一 裸机驱动开发流程 所谓裸机在这里主要是指系统软件平台没有用到操作系统 在基于ARM处理器平台的软件设计中 xff0c 如果整个系统只需要完成一个相对简单而且独立的任务 xff0c 那么可以不使用操作系统 xff0c 只需要考虑在平台上如
  • MPU6050 - 陀螺仪 - 技术总结

    博主福利 xff1a 100G 43 电子设计学习资源包 xff01 http mp weixin qq com mp homepage biz 61 MzU3OTczMzk5Mg 61 61 amp hid 61 7 amp sn 61
  • 一文讲透缓存方案及常见问题——初篇

    Hello 大家好 今天跟大家聊的一个话题就是 缓存 目前 面向C端的服务架构中 除开管理后台等访问量很少 实时性要求较高的服务可不使用缓存外 缓存已成为高性能分布式系统里不可或缺的一环 本文不打算过多涉及具体的缓存组件如Memcached
  • SystemUI模块总结

    SystemUI模块总结 1 SystemUI路径 SystemUI被放在 framework base packages apps SystemUI 在该目录的二级目录src com android下可看到SystemUI和Keyguar
  • Linux Ubuntu搭建Git服务器

    之前介绍过如何在Windows上搭建Git仓库服务器 不过服务器用的比较多的还是Linux 因为便宜 同一个VPS商一般来说Linux比Windows便宜 没有图形界面 低配置VPS的也可以跑动Linux 开源免费 我感觉比较灵活 下载源也
  • Spring Cloud Gateway 全局异常处理

    文章目录 Spring Cloud Gateway 全局异常处理 范例 示例 修改前抛出一个运行时异常 示例 全局异常处理抛出一个运行时异常 如何添加 自定义异常处理配置 全局异常处理监听器 总结 Spring Cloud Gateway
  • 使用SimHash进行海量文本去重

    阅读目录 1 SimHash与传统hash函数的区别 2 SimHash算法思想 3 SimHash流程实现 4 SimHash签名距离计算 5 SimHash存储和索引 6 SimHash存储和索引 7 参考内容 本文介绍的SimHash
  • 一文看尽深度学习中的各种数据增强

    目录 引言 数据增强的定义 数据增强的作用 省钱 省时 省心 提升模型性能 数据增强的方式 基础数据增强方法 Image Manipulation Rotation Translation Shearing Flipping Croppin
  • ORA-04088(ORA-04084): cannot change NEW values for this trigger type

    gt gt gt bug背景 gt gt gt bug来源一个定时任务的删除操作 这里需要删除原来数据 然后插入定时采集到的数据 因采集到的数据中没有id这个字段 所以插入这个过程需要借助oracle的触发器 来自动生成一个id 最终我写的
  • shell 脚本一键生成busybox从零创建文件系统for x86_64

    bin sh update images for x86 64 git clone https github com torvalds linux git depth 1 verbose cd linux make defconfig cp
  • HBase RegionServer功能职责

    RegionServer功能职责 租约管理 HBase的租约管理功能主要应用在scan查询上 如果客户端执行scan操作以后 在60秒内没有将Scanner进行关闭 也没有显示的将租约移除 这时查询租约将会过期 RegionServer会强
  • Spring Boot 添加拦截器

    文章目录 Spring Boot 添加拦截器 方法1 新增拦截器 配置拦截器 方法2 新增拦截器 配置拦截器 拦截所有响应 Spring Boot 添加拦截器 介绍一下在Spring Boot 2 0 0以上版本如何添加拦截器 方法1 新增
  • wildfly(JBOSS)启动报错

    报错内容 15 07 50 724 ERROR org jboss as controller management operation Controller Boot Thread WFLYCTL0013 Operation add fa
  • App6种常见的数据加载设计

    设计师在进行APP设计的设计时 往往会更加专注于界面长什么样 界面和界面之间怎么跳转 给予用户什么样的操作反馈 却偏偏特别容易忽略掉一个比较重要的环节 就是APP数据加载中的设计 所以会导致我们看到的APP 往往有着华丽的启动界面 然后就是
  • 如何自己手动搭建一个RSS订阅机器人(rssbot),自己做一个RSS阅读器

    当你想RSS订阅一些自己感兴趣的博客 却又苦于免费的RSS阅读器广告很多时 可以自己借助Telegram机器人搭建一个RSS订阅机器人 本文老王介绍下如何搭建一个Telegram RSS订阅机器人 以及如何把RSS订阅机器人拖到Telegr
  • 性能综述方法论

    性能问题和Bug不同 后者的分析和解决思路更清晰 很多时候从应用日志 文中的应用指分布式服务下的单个节点 即可直接找到问题根源 而性能问题 其排查思路更为复杂一些 对应用进行性能优化 是一个系统性的工程 对工程师的技术广度和技术深度都有所要
  • HttpMediaTypeNotAcceptableException的解决过程

    今儿的Web项目中突然报错 HttpMediaTypeNotAcceptableException Could not find acceptable representation 涉及接口是 RequestMapping value X
  • 什么是反向代理服务器

    我们常会看到 反向代理服务器 这个名词 例如常看到文章上说 nginx 是一个反向代理服务器 varnish 是一个反向代理服务器 下面就了解下这个概念 含义 反向代理服务器 有两个概念 一是 代理服务器 二是 反向 代理服务器 比较好理解
  • Maven 父子POM文件 相同依赖不同版本的问题

    Maven 父子POM文件 相同依赖不同版本的问题 默认用父一级的版本 而且子POM文件的版本处会有黄色Warn 解决 增加
  • 1264 - Out of range value for column 'id' at row 1

    1 我用的是mysql 在数据插入是报错 原因是我插入的值 超过了数据库中类型和长度设置 1 1 我的插入语句 注意 id 的值 INSERT INTO test id sex name username password classes

随机推荐

  • react生命周期componentDidMount中设置setState在esIint报错

    react生命周期componentDidMount中设置setState在esIint报错 项目背景 由于需要在页面渲染出来的时 对state中的数据进行初始化并需要出发render重绘 componentDidMount let sel
  • 5G“邂逅”云计算,运营商云网融合大势所趋

    近几年 国内运营商纷纷发力布局云计算市场 力求在云领域打造出自己的地盘 近期 中国电信天翼云与中科曙光战略合作 双方将共同探索在 5G 云 领域的建设 去年8月中国移动在苏州成立中国移动云能力中心 中国联动也于去年年底发布沃云云计算战略 而
  • navicat使用触发器在插入记录修改某个字段的值

    最近项目遇到了一个问题 查用户的某些字段有NULL会报错 所以想在注册的时候用的触发器提前设置一个默认值 避免空指针 先在本地建一个测试表t 1 就给三个基本字段 然后右击表选择设计表找到 触发器 开始编辑 现在的写法是正确的 我之前是这样
  • B站马士兵python入门基础版详细笔记(4)

    前言 这篇文章是B站学习python入门基础班的视频的第四章内容 主要讲述的是if else语句 但是不包括循环结构 循环结构在下一章笔记中有记叙 一 顺序结构 什么是顺序结构呢 比如说 把大象装冰箱需要分几步 print 程序开始 pri
  • 数模比赛提分tips

    1 对于模型的建立和求解 这一部分是文章的重点 要特别突出你的创造性的工作 在这部分写作需要注意的事项有 一定要有分析 而且分析应在所建立模型的前面 一定要有明确的模型 不要让别人在你的文章中去找你的模型 关系式一定要明确 思路要清晰 易读
  • 指针进阶(三)

    指针进阶 三 指针习题组 01 int main int a 5 1 2 3 4 5 int ptr int a 1 printf d d a 1 ptr 1 return 0 运行结果 原因 这里a是数组名 存放的是数组的首地址 a是整个
  • pip install tensorflow报错ERROR: Could not find a version that satisfies the requirement tensorflow (f

    这里写目录标题 报错内容 解决方法 其他方法 原因分析 报错内容 pip3 install tensorflow 输入上述命令安装tensorflow后出现下面的报错 ERROR Could not find a version that
  • chrome浏览器被hao123劫持如何解决?

    那天上班 打开电脑点开chrome浏览器 首页出现的是我熟悉的谷歌搜索页面 可是很快右边又打开了一个页面 123 hao234 com 这个流氓网站就这个这么不请自来了 而且之后我用尽了网上各种办法都弄不走 各种无效方法 1 绑定自己的主页
  • 背包九讲--混合背包、分组背包、资源分配背包、背包方案总数

    混合背包 混合背包 问题描述 一个旅行者有一个最多能用V公斤的背包 现在有n件物品 它们的重量分别是W1 W2 Wn 它们的价值分别为C1 C2 Cn 有的物品只可以取一次 01背包 有的物品可以取无限次 完全背包 有的物品可以取的次数有一
  • hive基础(二) hive操作大全

    目录 注 只是为了以后忘了 好翻 做个总结 一 hive 操作 1 hive e 2 hive f 3 查看在hive中输入的所有历史命令 4 hive运行日志修改 二 hive参数配置 三 hive数据类型 基本数据类型 集合数据类型 1
  • PHP与MySQL程序设计 学习笔记 第八章 错误和异常处理

    error reporting函数确定报告的敏感级别 共有16个不同级别 这些级别的任何组合都是有效的 error reporting函数使用 字符表示逻辑操作符NOT error reporting E ALL E STRICT 希望报告
  • python两列表对应元素求和

    一种方法是循环 但是有简便方法 用numpy import numpy as np list1 1 2 3 4 list2 1 2 3 4 a array np array list1 b array np array list2 c ar
  • matlab安装好 启动总是闪退_win10系统启动matlab出现闪退的处理技巧

    电脑操作系统在使用的时候经常会被一些问题所困扰 例如很多用户都遇见过win10系统启动matlab出现闪退的问题 大部分用户如果第一次碰到win10系统启动matlab出现闪退的现象 因此大伙都会不知所措 怎么才可以完善的治理win10系统
  • 设计模式之状态模式(思想)

    设置模式之状态模式 上图学过网络的同学应该都比较清楚吧 这是一张TCP状态转换图 只要理解上图 那么对状态模式也就很容易理解啦 状态模式的意图 允许一个对象在其内部状态改变时改变它的行为 简单的说就是 一个人他的外表没有改变 但是他内在的心
  • batch-命令的学习

    batch命令的扩充变量语法 所谓扩充变量语法 是指对已有参数 环境变量或其他变量的引用 的再处理 扩展 对比与java语言 可以理解为 对传入参数的格式化 扩充变量只能针对于传入变量的自身属性 自身的引用 值 变量代表的文件位置信息 进行
  • 深入理解Flutter的GestureDetector组件

    引言 上一篇文章 深入理解Flutter的Listener组件 介绍了触控事件的监听原理 让我们对Flutter中触摸事件的传递过程有了进一步的认识 今天我们学习一下手势识别组件GestureDetector的原理 GestureDetec
  • 苏州大学邮箱注册JetBrain, 永远使用专业版

    今天发现 使用教育邮箱 可以免费使用JetBrain的专业版 作为苏大的学生 尤其是计算机学院的不要错过哦 注意 只是针对苏州大学的学生 毕业之后可以开通校友邮箱 相当于以后可以一直使用专业版 每年激活一次 1 开通邮箱 a 登陆网址 ht
  • PAT打卡--L1-016查验身份证(c++)

    原题链接 这道题其实也是一道简单题 我主要还是用其来学习C 通过这道题 了解到了c 中的字符和int之间的转换 首先贴上代码吧 include
  • spring data jpa 自定义接口实现

    没错 spring data jpa很优秀 但有一些东西 我们就想自己来 我除了想用你的 还想用我自己的 首先 我要spring data jpa的接口 为什么 因为很方便啊 public interface TaskDao extends
  • ORA-04088(ORA-04084): cannot change NEW values for this trigger type

    gt gt gt bug背景 gt gt gt bug来源一个定时任务的删除操作 这里需要删除原来数据 然后插入定时采集到的数据 因采集到的数据中没有id这个字段 所以插入这个过程需要借助oracle的触发器 来自动生成一个id 最终我写的