2015-04-01 49 views
1
create or replace view ABC_VIEW(
    VEHICLEID, BRAND, 
    MODEL, VEHICLE_TYPE, 
    FUEL_TYPE, TRANSMISSION_TYPE, 
    GEARBOX, DRIVE_TYPE, 
    VEHICLE_NUMBER, PRICE, 
    "TEST Column" 
) as 
    select VEHICLEID, BRAND, 
     MODEL, VEHICLE_TYPE, 
     FUEL_TYPE, TRANSMISSION_TYPE, 
     GEARBOX, DRIVE_TYPE, 
     VEHICLE_NUMBER, PRICE, 
     '' as "TEST Column" 
    from ABC; 

默认"Test Column"创建为Char(1)。如何将其更改为Number数据类型?如何更改视图中虚拟列的数据类型?

请帮我一把。谢谢。

+0

' '''是不是一个数字,所以你不能把它定义为这样的。你的查询没有意义。 ''''代表什么数字?你为什么不加入你想要的号码呢? – 2015-04-01 19:55:42

回答

0

您可能正在寻找TO_NUMBER函数。

试试这个:

create or replace view ABC_VIEW 
(VEHICLEID,BRAND,MODEL,VEHICLE_TYPE,FUEL_TYPE,TRANSMISSION_TYPE,GEARBOX,DRIVE_TYPE,VEHICLE_NUMBER,PRICE,**"TEST Column"**) 
as select VEHICLEID,BRAND,MODEL,VEHICLE_TYPE,FUEL_TYPE, 
TRANSMISSION_TYPE,GEARBOX, DRIVE_TYPE,VEHICLE_NUMBER,PRICE,TO_NUMBER('') 
from ABC; 
+0

SQL错误:ORA-00904::无效标识符 获取此错误消息 – Subbu 2015-04-01 18:50:06

+0

@Subbu: - 更新了我的答案。请立即检查! – 2015-04-01 18:51:33

+1

Hi Rahul Tripathi,It Worked。,。谢啦。,。 – Subbu 2015-04-01 18:55:51

5

喜欢这里:

create or replace view v_abc as 
    select cast(null as number) test_column 
    from dual; 

测试:

select table_name, column_name, data_type 
    from all_tab_columns where table_name='V_ABC'; 

TABLE_NAME      COLUMN_NAME     DATA_TYPE 
------------------------------ ------------------------------ ------- 
V_ABC       TEST_COLUMN     NUMBER