当前位置:  开发笔记 > 编程语言 > 正文

Oracle 10gr2:阻止星期日的任何日期?

如何解决《Oracle10gr2:阻止星期日的任何日期?》经验,为你挑选了1个好方法。

是否可以使用CHECK约束来防止任何日期落在星期日?我不想使用触发器.



1> Plasmer..:

是的,检查约束可以检查星期几不是星期日.这是一个例子:

create table date_test (entry_date date);

alter table date_test add constraint day_is_not_sunday
      check ( to_char(entry_date,'DAY','NLS_DATE_LANGUAGE = ENGLISH') not like 'SUNDAY%'); 

- SUNDAY右边有空格,所以需要rtrim来匹配字符串.

insert into date_test values(to_date('2008-10-12','YYYY-MM-DD')); --Sunday
insert into date_test values(to_date('2008-10-11','YYYY-MM-DD'));
insert into date_test values(to_date('2008-10-10','YYYY-MM-DD'));
insert into date_test values(to_date('2008-10-09','YYYY-MM-DD'));
insert into date_test values(to_date('2008-10-08','YYYY-MM-DD'));
insert into date_test values(to_date('2008-10-07','YYYY-MM-DD'));
insert into date_test values(to_date('2008-10-06','YYYY-MM-DD'));

当您尝试插入星期日的日期时,它会说:
ORA-02290: check constraint (SYS.DAY_IS_NOT_SUNDAY) violated

推荐阅读
ar_wen2402851455
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有