在Insert In DB2中将Timestamp列设置为NULL

时间:2013-09-05 13:46:26

标签: sql types casting db2

我正在使用DB2版本10.我有一个表,其中包含为我定义的更新时间戳,如下所示:

Update_Timestamp             For Column D2TIMSTU Timestamp    DEFAULT  NULL

在初始加载到此表的数据时,我想将所有行的此列的值设置为NULL,但我没有成功。我已经尝试将NULL指定为插入值,我甚至尝试指定DEFAULT。

两次尝试都给出了同样的错误:

  

SQL状态:42703   供应商代码:-206   消息:[SQL0206]找不到列或全局变量DEFAULT。原因。 。 。 。 。 。 :在* N中未找到DEFAULT作为表* N的列,并且未在* N中找到全局变量。

如果表是* N,则DEFAULT不是任何可以引用的表或视图的列

  

NULL的相同错误 - 在错误消息中将DEFAULT替换为NULL。

我知道我可以通过不指定列名和值来解决这个问题,但我真的想知道为什么这不起作用。

1 个答案:

答案 0 :(得分:2)

首先,您确定目标表中的col3是否允许接受NULL值?

如果是这样,尝试这样的事情(我无法测试 - 我再也无法访问DB2系统了)

INSERT INTO [Table Name](col1, col2, col3)SELECT Value1, Value2, 
    cast(NULL as timestamp) FROM [Source Table]