1

我正在编写一个脚本(setage),它会自动在我的表中设置从出生日期开始的年龄。

这是我的表(mytable)描述:

ID, NOT NULL, varchar(20)
DOB, DATE
AGE, int


insert into MYTABLE(AGE)
SELECT TRUNC(MONTHS_BETWEEN(SYSDATE,DOB)/12)
FROM MYTABLE;

但我收到一个错误

cannot insert NULL into ("my-PC"."MYTABLE"."ID")

我确信我的表中有几条记录带有 ID 和 DOB 输入,但不是我的年龄。但是为什么系统说由于我的 ID 字段我不能进去?

4

1 回答 1

1

检查您的数据类型。

  • 您的 ID 中有varchar
  • TRUNC() 用于日期
  • 而 MONTH_BETWEEN() 返回浮点
于 2012-11-06T04:08:09.427 回答