【发布时间】:2021-03-06 11:43:22
【问题描述】:
这是我的表(为简单起见,删除了包括主键在内的工作列)
CREATE TABLE loans
(checkout_date DATE,
due_date DATE DEFAULT 'checkout_date' + 21,
)
此代码返回“ORA-00932:不一致的数据类型:预期的 DATE 得到了 NUMBER”。 使用 '21' 会返回相同的错误。 任何帮助表示赞赏!
【问题讨论】:
-
可能需要一个触发器。但我可能会建议在代码中这样做,或者如果总是提前 21 天,只需查看
-
'checkout_date'是一个字符串。通过应用+ 21,您使 Oracle 认为该字符串包含一个要添加到 21 的数字。因此出现错误“expected DATE got NUMBER”。 -
接受的答案表明您永远不需要
DEFAULT(在插入行时未指定列值时使用),而是计算列(直接或通过视图)。确保您了解未来情况的不同之处。
标签: sql oracle datetime create-table