Sat*_*ian 4 database oracle plsql exception
有一种情况:如果Salary列的更新值小于其原始值,则打印错误消息并且不允许更新.这是我到目前为止所写的:
CREATE OR REPLACE TRIGGER TRIG1
BEFORE UPDATE OF SAL ON EMP
for each row
USER_XCEP EXCEPTION
WHEN (NEW.SAL<OLD.SAL)
BEGIN
RAISE USER_XCEP
EXCEPTION
WHEN USER_XCEP THEN
DBMS_OUTPUT.PUT_LINE('UPDATION NOT ALLOWED - ILLEGAL VALUES');
END;
Run Code Online (Sandbox Code Playgroud)
我得到错误 - 错误的触发器规范
有没有其他方法来实现这一目标?
Ben*_*Ben 10
你快到了; 你需要一个触发一个DECLARE块,如果你要申报的东西; 这意味着您的WHEN子句位于错误的位置.
create or replace trigger trig1
before update
of sal
on emp
for each row
when (new.sal < old.sal)
declare
user_xcep EXCEPTION;
PRAGMA EXCEPTION_INIT( user_xcep, -20001 );
begin
raise user_xcep;
end;
Run Code Online (Sandbox Code Playgroud)
几点:
阅读文档中有关内部定义的异常的更多信息
归档时间: |
|
查看次数: |
32944 次 |
最近记录: |