【发布时间】:2016-02-21 07:39:44
【问题描述】:
我有这样的看法:
SELECT NVL(foo, 0) foo FROM bar
不幸的是,这个视图忽略了bar.foo 是NUMBER(1) 的事实,而只是将其分配为NUMBER。我想保留类型信息,所以我这样做了:
SELECT CAST(NVL(foo, 0) AS NUMBER(1)) foo FROM bar
这可行,但如果我有很多像foo 这样的列,我需要复制类型信息。我是否会更改其中一个的精度,我也必须在视图中更改它,否则可能会失去精度。所以理想情况下,我想做这样的事情:
SELECT CAST(NVL(foo, 0) AS TYPE(foo)) foo FROM bar
这可能吗?如果可以,怎么做?
【问题讨论】:
标签: sql oracle types oracle12c sql-view