精华内容
下载资源
问答
  • ORA-04098: 触发器无效且未通过重新验证 今天在编写代码做新增操作时遇到此问题,记录问题解决过程 Hibernate: insert into aiface_dept (code, dpid, fullcode, fullname, name, pid, sourceid, ver, id) values (?...

    ORA-04098: 触发器无效且未通过重新验证

    今天在编写代码做新增操作时遇到此问题,记录问题解决过程

    Hibernate: insert into dept (code, dpid, fullcode, fullname, name, pid, sourceid, ver, id) values (?, ?, ?, ?, ?, ?, ?, ?, ?)
    ===2019-11-12 16:41:00.713 WARN  org.hibernate.engine.jdbc.spi.SqlExceptionHelper Line:137 - SQL Error: 4098, SQLState: 42000
    ===2019-11-12 16:41:00.714 ERROR org.hibernate.engine.jdbc.spi.SqlExceptionHelper Line:142 - ORA-04098: 触发器 'FACETEST.TRG_AIFACE_DEPT_VER' 无效且未通过重新验证
    
    

    这明显跟触发器有关,于是检查这个表的触发器是否有语法上的问题,结果发现触发器只是单纯调用了一下序列,于是把要执行的序列调用语句拎出来执行了一下

    SELECT SEQ_DEPT_VER.NEXTVAL FROM DUAL;
    

    提示序列不存在,原来是创建序列时名称写错误了。

    CREATE SEQUENCE  "SEQ_DEPT"  MINVALUE 0 MAXVALUE 99999999999 INCREMENT BY 1 START WITH 6 NOCACHE  NOORDER  NOCYCLE ;
    
    展开全文
  • 插入数据的时候提示ora-04098:触发器无效且未通过重新验证 解决方法: 首先根据错误提示: 在Triggers中 找到对应的触发器 选择提示错误的触发器 右键–》查看 可以在其程序窗口中看到其提示的错误 比如: 1 PL/SQL...

    插入数据的时候提示ora-04098:触发器无效且未通过重新验证

    解决方法:
    首先根据错误提示:
    在Triggers中 找到对应的触发器
    在这里插入图片描述
    选择提示错误的触发器 右键–》查看
    可以在其程序窗口中看到其提示的错误
    比如:
    1 PL/SQL:ORA-00904:“YWSJ”;标识符无效
    1 PL/SQL:SQL Statement ignored

    首先查看 触发器写的create语句中,是否插入和被插入表都写了“YWSJ”字段
    如果触发器的语句中 两边都有则 去查看被插入的表 和 插入的表结构是否都有“YWSJ”字段

    在没有该结构的表中 添加该字段结构
    然后在Triggers中 找到对应的触发器 右键–》重新编译一下即可。

    这样就可以顺利执行插入语句啦!!

    //类比思考错误:(其他的错误也可以这样排除)
    类似错误:提示对应的列值太小 实际值大
    如果插入的表和对应的表对应列大小是对的
    那就可以查看对应的触发器

    最后我的错误是因为触发器中 跟我要插入的表对应关系表中,对应的列值太小 将其改正
    重新执行就可以插入数据啦!

    展开全文
  • 把脚本复制到Oracle Developer中运行,之后在前端运行时报错ORA-04098:触发器无效且未通过重新验证。然后开始排错,确认语法等无误后,手动将PD里sequence的脚本放到developer中运行,创建好sequence后,再把...
    用powerdesign设计好表单,其中主键设置为每插入一行数据前自增1。把脚本复制到Oracle Developer中运行,之后在前端运行时报错ORA-04098:触发器无效且未通过重新验证。然后开始排错,确认语法等无误后,手动将PD里sequence的脚本放到developer中运行,创建好sequence后,再把trigger脚本放入developer中运行,绑定new,设置值为1。再重启服务器,添加数据,最终解决报错。成功实现目标功能:每插入一行数据之前,主键自增1.
    展开全文
  • 解决 报错ora-04098: oracle trigger 触发器无效且未通过重新验证 在开发过程中 本人遇到以下报错信息: 1、 2、 [SQL]select TB_REPORT_KIND_id.Nextval into:new.KIND_ID from dual [Err] ORA-01008: not all ...

    解决 报错ora-04098: oracle trigger 触发器无效且未通过重新验证

    在开发过程中 本人遇到以下报错信息:

    1、
    在这里插入图片描述

    2、
    [SQL]select TB_REPORT_KIND_id.Nextval into:new.KIND_ID from dual
    [Err] ORA-01008: not all variables bound

    3、
    [Err] ORA-04098: trigger ‘YLDFXJK.TB_REPORT_TG_INSERTID’ is invalid and failed re-validation

    4、ORA-04098:触发器无效且未通过重新验证

    均是因为本人创建创建序列SQL问题 导致创建失败 :

    – 新建触发器 创建失败

    create or replace trigger TB_REPORT_KIND_tg_insertId
    before insert on TB_REPORT_KIND for each row 
    begin
    select TB_REPORT_KIND_id.Nextval into:new.id from dual;
    end;
    

    – 新建触发器 创建成功

    create or replace trigger TB_REPORT_KIND_tg_insertId
    before insert on TB_REPORT_KIND for each row 
    begin
    select TB_REPORT_KIND_id.Nextval into:new.KIND_id from dual;
    end;
    

    问题在于要对应到表主键上
    在这里插入图片描述

    主键自增 序列化参考网址:
    https://www.cnblogs.com/xiaostudy/p/10062491.html

    展开全文
  • 在oracle客户端中“ora-04098:触发器无效且未通过重新验证”这个问题网上的解决方案很多,这里记录下JAVA代码创建触发器时踩的坑。 脚本中的代码: CREATE OR REPLACE TRIGGER "MY_TRIGGER" BEFORE ...
  • CREATE OR REPLACE TRIGGER UFtrigger1 BEFORE INSERT ON hrmsubcompanydefined FOR EACH ROW BEGIN insert into uf_companytitle(ID,YZQC,SUBCOMID)VALUES(:new.ID,:new.YZQC,:new.SUBCOMID) ...
  • ![图片说明](https://img-ask.csdn.net/upload/201612/02/1480667945_232262.png) 求帮看看是什么问题!
  • 目测, 你是在用 SQL Server 数据库的语法, 在 Oracle 上面写触发器啊......CREATE TABLE a ( objcode INT, objstate INT);CREATE TABLE b ( objcode INT, objstate INT);INSERT INTO a VALUES( 1, 100);INSERT ...
  • 代码内容:创建触发器 create or replace trigger auid before insert on person for each row declare begin select s_person.nextval into :new.pid from dual; end; 创建表:create sequence s_...
  • 我是用powerdesigner生成触发器的,头文件已经删除。查看具体错误信息时显示: TRIGGER WEN.COMPOUNDUPDATETRIGGER_HRM_USER 编译错误 错误:PLS-00103: 出现符号 "/"在需要下列之一时: function pragma ...
  • ORACLE 菜鸟,犯了一个低级错误,用...附上查看触发器状态的SQL语句: SELECT * FROM all_triggers where trigger_name = 'XXX' 或者: select * from all_source where type='TRIGGER' AND name='XXX'; 
  • RT: 这是我创建序列和触发器的sql Create sequence SENDSNO; CREATE OR REPLACE TRIGGER "BFINSERT_SM_SEND" BEFORE ...在执行insert语句的时候就报触发器无效且未通过重新验证,这个怎么解决
  • 第一次写触发器,要求更新a表的objstate字段时,更新b表的state字段,两个表通过objcode字段关联,触发器如下: ...创建成功后,更新a表的objstate字段,报错触发器无效且未通过重新确认 求正解~~
  • 发现触发器下有如下提示 通过右击编辑进入查看错误 对应相应的错误进行解决 如此问题解决 代码: create or replace trigger show_salary before delete or insert or update on customers for...
  • 晚上闲来无事,学习了一下oracle的触发器,写了一个简单的触发器,更新dept表时,触发器输出对dept表更新的操作以及时间。 然后调试了一下触发器,见如下的操作。 恩恩,就这样吧,其他的也没接触到。
  • 今天在做数据库运维,有一张xxx记录表,数据量有2亿多条,严重影响了查询...结果在运行项目时出问题了,日志显示:ora-04098:触发器 xxx.xxxxx 无效且未通过重新验证。直接在数据库中执行sql,也是报相同的错误。 ...
  • 在使用Oracle触发器时,先通过自建两个表作为测试的表,目的时让这两个表进行行数据同步,当增删改一个表当数据时,会同步修改另一个表当数据。 当对自己项目中实际使用的表创建触发器进行数据同步时,发现PL/SQL的...
  • [size=16px][color=#FF0000]我想在 savings_type 表插入数据的时候用触发器自动往里面插入主键值,也是自增列。表结构如下:[/color][/size] [img=...
  • 因为在创建触发器的时候,中间使用了存储过程。 然后才发现是创建存储过程的时候有错误。 2:对于初学者,主要是定位到问题的地方。 使用pl/sql 找到错误的存储过程或者触发器 ---右键有个(edit)编辑...

空空如也

空空如也

1 2 3 4
收藏数 65
精华内容 26
关键字:

触发器无效且未通过