【发布时间】:2013-09-20 04:13:10
【问题描述】:
create or replace trigger employee_age_constraint
before insert on employee
for each row
begin
if floor(months_between(current_date,:New.employee_birthdate)/12) < 13 then
raise_application_error(123123, 'asf')
end if;
end;
我在 Oracle SQL 开发人员上使用此代码时不断收到此错误,我不知道为什么,请帮助!
【问题讨论】:
-
raise_application_error后面缺少分号? -
这个问题似乎离题了,因为它是关于缺少分号的。
-
这一点我怎么强调都不过分。 请勿在您的数据库中存储年龄(或下一个生日或其他任何含义)除非您定期更新整个表,否则您的约束是无用的。如果您定期更新整个内容,它只需要不运行一次(或运行两次),您就会遇到严重的麻烦。 See, for instance my answer here
-
您似乎在检查员工更改出生日期时(这种情况有多普遍?)他们不到一岁...
标签: sql triggers oracle-sqldeveloper