2013-05-10 87 views
0

我對此沒有太大的好運。我正在創建一個新表格並添加一個默認值的列 - 該表默認列數據類型爲CHAR 7,但最後一列需要爲CHAR 30.Oracle - 如何添加列並設置數據類型

到目前爲止,我只能修改表格創建後,但一定要有辦法一步到位。

CREATE TABLE table1 parallel 8 NOLOGGING AS 
SELECT 
    t2.1, 
    t2.2, 
    t2.3, 
    'N' AS Store, 
    'N' AS Address, 
    'N' AS Owner, 
    'N' AS User, 
    'N' AS Business, 
    'Unknown' AS Source 
FROM t2 

最後一列(來源)值超過7個字符,但所有其他值是Y/N。我的第一個想法是做'未知'AS來源(字符30),但我繼續得到ORA-00923

任何幫助將不勝感激。

回答

3

如果它需要是一個CHAR(30),你應該確保它是。用空格填充不一定是正確的方法;最好是告訴數據庫這就是你想要它使用CAST()功能,它轉換數據類型之間是什麼:

cast('Unknown' as char(30)) as source 
+0

+1 - 按秒:) – 2013-05-10 20:14:24

+0

使用打我給它一個varchar即可;) – Sebas 2013-05-10 20:18:27

+0

這不完全相同@Sebas,但是是的;從來沒有一次需要使用字段... – Ben 2013-05-10 20:20:16

相關問題