ORA 02436 sysdate oracle

原创 2007年09月24日 23:30:00
这是网上能够搜索到的比较可信的结果:
Unfortunately you can't use SYSDATE in a check constraint as it is a dynamic Oracle variable. A better way to enforce this constraint would be to use a trigger. For example:

CREATE OR REPLACE TRIGGER trg_emp_dob BEFORE INSERT OR UPDATE ON emp
BEGIN
   IF :new.dob > SYSDATE THEN
      RAISE_APPLICATION_ERROR (num => -20000, msg => 'DOB Cannot be in the future');
   END IF;
END;

不过嘿嘿,我可不信邪,万事问大哥啊,于是在asktom上找到了这个解决方案:
Just create an additional column using as default SYSDATE. Then you can use this column to compare.
And if you want to hide this column create a view around it...

SQL> create table t
  2  (x   date,
  3   y   date default sysdate,
  4   constraint x_y check
  5   (
  6      x >= y
  7   )
  8  );

Table created.

SQL>
SQL> create view v as select x from t;

View created.

SQL>
SQL> insert into v values (sysdate);

1 row created.

SQL>
SQL> commit;

Commit complete.

SQL>
SQL> insert into v values (sysdate-1);
insert into v values (sysdate-1)
*
ERROR at line 1:
ORA-02290: check constraint (ADBM.X_Y) violated

总之oracle不能非常漂亮的解决这个问题,这里两个方案你看着选吧。

 
版权声明:本文为博主原创文章,未经博主允许不得转载。

ORACLE时间函数(SYSDATE)简单理解

加法  select sysdate,add_months(sysdate,12) from dual; --加1年  select sysdate,add_months(sysdate,1) fro...
  • zcouy
  • zcouy
  • 2016年10月26日 17:22
  • 1860

Oracle获取系统时间及格式化

Oracle 获取当前日期及日期格式    获取系统日期:  SYSDATE()    格式化日期:     TO_CHAR(SYSDATE(),'YY/MM/DD HH24:MI:SS) ...
  • waysoflife
  • waysoflife
  • 2014年05月18日 18:52
  • 2428

SQL Server 常用日期函数DateDiff()、GetDate() 以及oracle 日期常用函數 (SYSDATE、日期格式)等详解

SQL Server 常用日期函数DateDiff()、GetDate() 以及oracle 日期常用函數 (SYSDATE、日期格式)等详解 一、GetDate() 函数 作...
  • xiyiyindie
  • xiyiyindie
  • 2016年11月06日 11:14
  • 2050

ORA-01846:周中的日无效

SELECT NEXT_DAY(SYSDATE,'MON') FROM DUAL; 提示错误:ORA-01846:周中的日无效   在Oracle是提供了next_day求指定日期的下一个日期....
  • YABIGNSHI
  • YABIGNSHI
  • 2013年03月15日 15:28
  • 2372

Oracle 中的 TO_DATE 和 TO_CHAR 函数 日期处理

Oracle 中的 TO_DATE 和 TO_CHAR 函数 日期处理 Oracle 中的 TO_DATE 和 TO_CHAR 函数 oracle 中 TO_DATE 函数的时间格式,以 2008...
  • jaray
  • jaray
  • 2014年11月26日 14:52
  • 1150

删除undo表空间遇到ORA-30013及ORA-01548的解决思路

今天在一套RAC环境下删除、切换其中一个实例的undo表空间时,遭遇ORA-30013及ORA-01548的错误,下面记录过程及解决方法。 1 创建新的UNDO表空间UNDOTBS3,并将当前实例的...
  • libing13810124573
  • libing13810124573
  • 2014年03月28日 00:43
  • 835

Oracle连接超限修改,ORA-00064,ORA-12571,ORA-24324及用户连接查看

网址: http://www.2cto.com/kf/201301/184070.html SQL> startup  ---------------在services.msc将orcl重启,...
  • sky_too
  • sky_too
  • 2013年12月21日 16:46
  • 2037

ora-03114:未连接数据库

Ora-03114:未连接数据库 现象: 在使用pl/sql developer编译时总是报 Ora-03114:未连接数据库。 解决方法:  去掉cdc功能。 故障原因:PLSQLDev.ex...
  • songyundong1993
  • songyundong1993
  • 2016年12月06日 11:54
  • 6015

ORACLE物化视图--物化视图日志如何避免系统时间变化带来的影响

ORACLE物化视图--物化视图日志如何避免系统时间变化带来的影响 转载▼ 标签:  时间   系统   如何   影响   杂谈 ...
  • hblzq
  • hblzq
  • 2014年01月05日 11:41
  • 1191

IT忍者神龟之oracle获取本周、本月、本季度、本年度的第一天和最后一天 (备查)

--本周 select  trunc(sysdate,'d')+1 from dual; select  trunc(sysdate,'d')+7 from dual;  --本月 selec...
  • vipyhd
  • vipyhd
  • 2014年08月11日 21:10
  • 1124
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ORA 02436 sysdate oracle
举报原因:
原因补充:

(最多只允许输入30个字)