表A:aaa(char 20),bbb(char 20),ccc(number(16,2))
表B:aaa(char 20),bbb(char 20),
表C:aaa(char 20),bbb(char 20),create or replace view T_view as
select aaa,bbb,ccc from A
union select aaa,bbb,0.00 from b
union select aaa,bbb,0.00 from c视图完成后视图内的ccc字段不是number(16,2)变成number(22),无法显示小数位????

解决方案 »

  1.   

    不会出现上述问题,因为oracle不知道你要插入的值是多少,所以最后的number(16,2) 会变成number类型,所以不会出现这样的问题;你可以使用:
    create or replace view t_view
    select aaa,bbb,ccc from A
    union select aaa,bbb,15.22 from B
    union select aaa,bbb,0.00 from C;desc t_view
    aaa char(20)
    bbb char(20)
    ccc number
      

  2.   

    使用cast()函数
    create or replace view T_view as 
    select aaa,bbb,cast(ccc as number(16,2)) as ccc from
    (
    select aaa,bbb,ccc from A 
    union select aaa,bbb,0.00 ccc from b 
    union select aaa,bbb,0.00 ccc from c 
    )
    就解决了!