zoukankan      html  css  js  c++  java
  • DbVisualizer:Oracle触发器,解决ORA-04098: 触发器 'USER.DECTUSERTEST_TRI' 无效且未通过重新验证

    我没有用orcal的管理工具,而是用的DbVisualizer 9.5.2,管理数据库。

    场景:需要在oracle里面实在自增字段,在网上一搜一堆文档,然后自己就找了一段自己写如下:

    drop table userTest;
    create table userTest(
    id number(10) not null,
    name varchar2(20) primary key,
    sex varchar2(2)
    );
    drop sequence userTest_seq;
    create sequence userTest_seq
    minvalue 1
    maxvalue 99999999
    increment by 1
    start with 1
    nocycle
    nocache
    noorder;

    create or replace trigger userTest_tri
    before insert on userTest
    for each row
    BEGIN
    SELECT userTest_seq.NEXTVAL INTO :NEW.ID FROM DUAL
    // :NEW.ID := NEXT_ID; --:NEW表示新插入的那条记录
    // end ;
    END;

    insert into userTest(name) values ('name');

    一运行就抛出下面的错误:

    [Code: 4098, SQL State: 42000]  ORA-04098: 触发器 'TIANJING.USERTEST_TRI' 无效且未通过重新验证

    解决方案:

    首先查看该表的触发器:

     

    然后选中查看详情:

    查看详情的时候,发现触发器里面有错,然后修改并保存:

    好了,然后直接运行:

    insert into userTest(name) values ('name');

    数据库里面的字段自动增加了~~

  • 相关阅读:
    函数与导数部分的题型梳理
    构造函数习题1
    破解构造函数问题
    函数的值域
    函数的定义域
    高三数学微课堂
    Redux Todos Example
    Linux下查看Nginx安装目录、版本号信息及当前运行的配置文件
    antd的Tree控件实现点击展开功能
    Redux Counter example
  • 原文地址:https://www.cnblogs.com/enternal07/p/6762752.html
Copyright © 2011-2022 走看看