触发不开火

时间:2018-03-30 16:51:25

标签: sql oracle plsql triggers

set serveroutput on;
create or replace trigger check_date
before insert 
on emp
for each row
begin
    dbms_output.put_line('test statement'||:new.hiredate||sysdate); --to test display
    if(:new.hiredate<sysdate) then
        dbms_output.put_line('invalid');
    end if;
end;
/


insert into emp(empno,deptno,hiredate) values(533,20,'23-3-12');

我已经编写了上面的触发器但是当我尝试将新记录插入到emp表中时,插入记录时不会触发触发器。

1 个答案:

答案 0 :(得分:0)

我尝试过上面附带的相同代码。我遇到的唯一问题是日期参数。在按照您的意愿传递日期之前,请通过工具 - &gt;偏好设置 - >数据库 - &gt; NLS-&gt;日期格式检查默认日期格式。然后传递默认格式提供的日期。如果不是,则需要使用to_date隐式转换日期格式。

它会像你期望的那样正常工作。