• Navicat 触发器ORA24344: success with compilation error


    1.情景展示

    在使用Navicat创建触发器时,报错信息如下:

    ORA-24344: success with compilation error

    2.原因分析

    意思是:该触发器创建成功,但是,编译失败。

    如何解决?

    3.解决方案

    以Oracle为例进行示范说明

    首先,我们需要确定的是:自己写的SQL脚本到底有没有问题?

    最简单的解决方案就是:把SQL放到plsql中进行执行。

    查看代码
    CREATE 
    	OR REPLACE TRIGGER TRIGGER_META_THEME_TABLE BEFORE INSERT ON META_THEME_TABLE FOR EACH ROW
    BEGIN
    	IF
    		( NEW.ID IS NULL ) THEN
    		SELECT
    			SEQ_META_THEME_TABLE.NEXTVAL INTO :NEW.ID 
    		FROM
    			DUAL;
    	END IF;
    END;

    我们可以看到:

    在plsql当中,触发器创建成功; 

     

    接下来,看一下该触发器有没有编译错误?

    在plsql当中,我们可以看到具体的错误原因。

    按照错误提示进行修改:

    CREATE OR REPLACE TRIGGER TRIGGER_META_THEME_TABLE
      BEFORE INSERT ON META_THEME_TABLE
      FOR EACH ROW
      WHEN (NEW.ID IS NULL)
    BEGIN
      SELECT SEQ_META_THEME_TABLE.NEXTVAL INTO :NEW.ID FROM DUAL;
    END;

    再次执行,没有报错信息的话,就说明创建的触发器可用。

    说明:

    使用Navicat对上述SQL进行美化的时候,Navicat会将:和NEW.ID分开,注意,它俩不能分开,如果分开的话,会导致触发器和引起触发器的操作无法运行!

    4.其它

    在Navicat当中,我们有两种方式对触发器进行可视化操作。

    方式一:通过表操作;

    选中要添加触发器的表,右键,设计表;

    点击“触发器”,在这里,我们可以定义触发器的名称、触发条件(上述操作前触发还是操作后触发)、触发器的时机(插入、更新、删除)、触发后需要执行的操作、是否启用触发器等进行操作。

    方式二:通过触发器窗口操作;

    工具栏--》其它--》触发器;

    选中要修改的触发器,点击“设计触发器”;

    方式三:执行SQL。

    新建查询窗口;

    写好触发器脚本,点击运行。

    写在最后

      哪位大佬如若发现文章存在纰漏之处或需要补充更多内容,欢迎留言!!!

     相关推荐:

  • 相关阅读:
    返回一个整数数组中最大子数组的和(数组头尾连接)
    场景调研(补)
    《浪潮之巅》读书笔记3
    《软件工程》课程改进意见
    【每日scrum】第一次冲刺day6
    【每日scrum】第一次冲刺day5
    【每日scrum】第一次冲刺day4
    【每日scrum】第一次冲刺day3
    【每日scrum】第一次冲刺day2
    【每日scrum】第一次冲刺day1
  • 原文地址:https://www.cnblogs.com/Marydon20170307/p/15903811.html
Copyright © 2020-2023  润新知