2013-07-10 83 views
1

根據Oracle's web site上的Oracle 12文檔(1.1.6.4),您應該能夠創建超過4000個字符的varchar2列。有沒有人manged這樣做,因爲我得到的是: -Oracle 12.1數據類型

Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production 
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options 

SQL> create table r1 (c1 integer, c2 varchar2(32000)); 
create table r1 (c1 integer, c2 varchar2(32000)) 
              * 
ERROR at line 1: 
ORA-00910: specified length too long for its datatype 
+3

您需要更改服務器參數'max_string_size':http://docs.oracle.com/cd/E16655_01/server.121/e17209/sql_elements001.htm#SQLRF55623和http://docs.oracle.com/ cd/E16655_01/server.121/e17615/refrn10321.htm#REFRN10321 –

回答

3

documentation also states

與Oracle數據庫12c的開始,您可以爲VARCHAR2,NVARCHAR2指定的 32767字節的最大尺寸和RAW數據類型。您可以 控制你的數據庫是否支持 設置初始化參數MAX_STRING_SIZE如下這個新的最大尺寸:

  • 如果MAX_STRING_SIZE =標準,那麼在Oracle數據庫12c中釋放的大小限制適用:4000個字節NVARCHAR2數據類型爲VARCHAR2和 ,RAW數據類型爲2000字節。這是默認的 。

  • 如果MAX_STRING_SIZE = EXTENDED,那麼VARCHAR2,NVARCHAR2和RAW數據類型的大小限制爲32767字節。

所以你需要設置你的MAX_STRING_SIZE initialisation parameter,使這項工作。

(我還沒玩過12c的機會,所以我現在只是繼續討論文檔中的內容)。

+0

謝謝你。我一直在忘記Oracle在幾個地方寫下同樣的東西,但並不總是使用相同的信息;-) –

+0

@RichardSpencer--他們不想讓生活變得輕鬆。這與新功能指南中的1.1.6.4部分有關,因此您只需點擊一下即可。 –

+0

- 我希望我永遠不會問這個問題。我完全打破了我的數據庫,無法啓動它:-( –