1

テーブルの生年月日から年齢を自動的に設定するスクリプト (setage) に取り組んでいます。

これは私のテーブル (mytable) desc です:

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() はdate用です。
  • MONTH_BETWEEN() は浮動小数点を返しますが、
于 2012-11-06T04:08:09.427 に答える