2009-07-07 9 views
2

我想通過添加一個新的CLOB列(在Oracle 10上)來嘗試ALTER表,但它失敗了。 給我一個ORA-01735錯誤。問題是我無法找到什麼特別是與我的查詢錯誤搜索google搜索,所以我想我會問這裏以防萬一。將LOB添加到Oracle表有什麼問題?

反正我的查詢是:

ALTER TABLE "MYSCHEMA"."MYTABLE" ADD "ACOLUMN" CLOB(2048); 

並得到以下錯誤:

SQL Error: ORA-01735: invalid ALTER TABLE option 
01735. 00000 - "invalid ALTER TABLE option" 

任何想法?

謝謝。

回答

5

(如果要指定大小使用VARCHAR)你可以不指定大小爲CLOB:

SQL> alter table t add ("ACOLUMN" CLOB(2048)); 

alter table t add ("ACOLUMN" CLOB(2048)) 

ORA-00907: missing right parenthesis 

SQL> alter table t add ("ACOLUMN" CLOB); 

Table altered 
+0

是的,我在嘗試ADD(「ACOLUMN」CLOB(2049))語法後得到了缺少的右括號錯誤。我猜我可能會使用VARCHAR來代替,謝謝 – 2009-07-07 09:12:05

1
alter table t add a_column clob; 
alter table t add a_column_with_max_size varchar2(1234); --max 4000 
+0

感謝提醒我關於Varchar2的4k限制!幾乎忘了它。 – 2009-07-07 09:15:36

1

如果您不希望在該列超過2048個字符,不使用CLOB,使用VARCHAR2(2048)。 VARCHAR2適用於多達4000個字符;如果您可能需要更多,請僅使用CLOB。

+0

我現在正在腦海中辯論這個問題......我是否需要一個CLOB或VARCHAR2 ... VARCHAR2似乎足夠好,但總有一天它可能會隨着一切而變化,然後它會變成一個CLOB ... mmm – 2009-07-07 09:17:27