来自Oracle current_timestamp的奇怪行为

时间:2016-11-01 02:22:35

标签: sql oracle

我有一个计划过程不断更新空时间戳列和当前时间戳,但有趣的是我看到这种不一致:

enter image description here

每个记录都通过单个或多个行的单个更新进行更新:

update timestamp = current_timestamp where row_condition = true;

但是如何发生这种情况,Oracle current_timestamp在不同的查询调用中表现不同?一个输出完全正确的时间戳,但其他输出的东西从哪儿(31-DEC-69)?

1 个答案:

答案 0 :(得分:0)

听起来好像你的列可能有一个DEFAULT值。插入了行,其中没有为timestamp列提供值,因此使用默认值填充。

尝试select data_default from all_tab_columns where table_name = 'YOUR_TABLE'; YOUR_TABLE是表名(记得以大写形式写)。这将告诉您该列是否有默认值。如果您愿意,也可以在where子句中添加列名称 - 但如果不喜欢,您可能会发现更多您可能不知道的信息。