【问题标题】:Oracle Trigger creation with compilation errors带有编译错误的 Oracle 触发器创建
【发布时间】:2016-06-15 15:10:26
【问题描述】:

我正在尝试使用以下代码创建一个简单的触发器 -

CREATE OR REPLACE TRIGGER trg_menu_id BEFORE INSERT ON "menu" FOR EACH ROW
BEGIN
 SELECT
    menu_id_seq.NEXTVAL INTO : NEW.MENU_ID
 FROM
    dual ;
END ;

但我得到 - [Err] ORA-24344: 编译错误成功 我不明白我做错了什么。

【问题讨论】:

  • 注意NEW前的冒号。那里不应该有任何空间。另外,你的表真的是小写的“菜单”吗?
  • 我也尝试过删除冒号后的空格。但同样的结果。是的,表名是小写的
  • 请发布完整的错误输出。 run : 在触发器执行后显示错误以获得完整的输出

标签: oracle database-trigger


【解决方案1】:

我的问题终于解决了。字段名称是小写字母,所以我必须使用NEW."menu_id" 而不是NEW.MENU_ID,现在它工作正常!!! 我的新代码是-

CREATE OR REPLACE TRIGGER trg_menu_id BEFORE INSERT ON "menu" FOR EACH ROW
BEGIN
 SELECT
    menu_id_seq.NEXTVAL INTO :NEW."menu_id"
 FROM
    dual ;
END ;

【讨论】:

    猜你喜欢
    • 2018-01-13
    • 2014-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-05
    • 1970-01-01
    • 1970-01-01
    • 2021-12-27
    相关资源
    最近更新 更多