我在我的oracle表上有一个更新触发器..但似乎它不起作用..在哪个触发器和表创建的解决方案是HR
创建或替换触发器TR_FinlStatAssetDesignation_U之前……
你想在这里完成什么? ON INSERT 触发?从你的评论
ON INSERT
我仍然可以作为用户“hello”插入一行..因此触发器不起作用..
你似乎想要阻止用户命名 HELLO 从被添加 - 但在您的触发器代码中,如果用户名为 HELLO 发现你只是从触发器返回。这没有任何成就。要向系统发出不希望INSERT继续运行的信号,必须在触发器中引发异常。例如:
HELLO
CREATE OR REPLACE Trigger TR_FinlStatAssetDesignation_I BEFORE Insert on FINLSTATASSETDESIGNATION BEGIN if USER = 'HELLO' or USER = 'SYSTEM' then RAISE_APPLICATION_ERROR(-20000, 'Invalid user in TR_FinlStatAssetDesignation_I'); end if; END TR_FinlStatAssetDesignation_I;
以这种方式引发异常将阻止INSERT继续成功完成。您的代码负责提供适当的错误处理程序。
祝你好运。