将日期更新为null

时间:2013-11-16 00:18:19

标签: sql oracle null sql-update

我正在尝试将enroll_date行更新为null并且它告诉我"cannot update (%s) to NULL",所以我尝试放TO_CHAR但它仍然没有帮助......

enroll_date显示我要将其设为null

ENROLL_DATE 
07-FEB-07  

这就是我所拥有的

UPDATE ENROLLMENT
SET TO_CHAR(ENROLL_DATE) = NULL
WHERE STUDENT_ID ='125'
      AND SECTION_ID ='61';

如何将enroll_date设置为null?

4 个答案:

答案 0 :(得分:7)

删除TO_CHAR功能。您正在更新列,而不是函数值

UPDATE ENROLLMENT
SET ENROLL_DATE = NULL
WHERE STUDENT_ID ='125'
      AND SECTION_ID ='61';

答案 1 :(得分:2)

该错误似乎告诉您,您的数据模型将enroll_date定义为NOT NULL列。因此,您不能将其设置为NULL。

您可以修改表定义以允许NULL值

ALTER TABLE enrollment
  MODIFY( enroll_date DATE NULL )

但是,在定义不应更改的数据模型时,这似乎是一种有意的选择。我没有看到enrollment如果没有enroll_date会有什么意义。

答案 2 :(得分:1)

UPDATE ENROLLMENT
SET ENROLL_DATE = NULL
WHERE STUDENT_ID ='125'
      AND SECTION_ID ='61';

如果这不起作用,则列定义可能为NOT NULL。

答案 3 :(得分:0)

使用ALTER COLUMN代替MODIFY

ALTER TABLE enrollment<br/>
ALTER COLUMN enroll_date DATE NULL