根据Oracle's web site上的Oracle 12文档(1.1.6.4),您应该能够创建一个超过4000个字符的varchar2列。有没有人管这样做,因为我得到的是: -
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
答案 0 :(得分:3)
从Oracle Database 12c开始,您可以指定最大大小 VARCHAR2,NVARCHAR2和RAW数据类型为32767个字节。您可以 控制您的数据库是否支持此新的最大大小 设置初始化参数MAX_STRING_SIZE如下:
如果MAX_STRING_SIZE = STANDARD,那么Oracle Database 12c之前版本的大小限制适用:VARCHAR2的4000字节和 NVARCHAR2数据类型,以及RAW数据类型的2000字节。这是 默认。
如果MAX_STRING_SIZE = EXTENDED,则VARCHAR2,NVARCHAR2和RAW数据类型的大小限制为32767字节。
因此,您需要设置MAX_STRING_SIZE
initialisation parameter才能使其正常工作。
(我还没有机会玩12c,所以我现在就开始讨论文档所说的内容了。)