丢失Oracle 10g上的数字的精度信息

时间:2013-12-12 13:13:56

标签: sql oracle oracle11g oracle10g

请考虑以下简化示例:

create view viewa as select cast(1 as decimal(3)) as testa from dual;
create view viewb as
  with sorted as (select testa from viewa order by testa)
  select testa from sorted;
desc viewb;

在Oracle 11g上,此示例按预期打印以下内容:

Name  Null Type      
----- ---- --------- 
TESTA      NUMBER(3) 

但是在Oracle 10g上,打印出以下内容:

Name  Null Type   
----- ---- ------ 
TESTA      NUMBER

我很困惑 - 为什么?这是一个错误还是有一些解释?如果我删除任何内容,顺序依据,公用表表达式,另一个视图,结果将正确显示为NUMBER(3)。当然我可以将结果改写为正确的类型,但我更愿意依赖数据库来携带正确的类型。

10g数据库的确切版本为Oracle Database 10g Enterprise Edition Release 10.2.0.4.0。同样转载于Oracle Database 10g Express Edition Release 10.2.0.1.0

编辑:编辑示例以根据第一条评论使用select testa

0 个答案:

没有答案