1

根据Oracle 网站上的 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
4

1 回答 1

3

文件还指出

从 Oracle Database 12c 开始,您可以为 VARCHAR2、NVARCHAR2 和 RAW 数据类型指定最大大小为 32767 字节。您可以通过设置初始化参数 MAX_STRING_SIZE 来控制您的数据库是否支持这个新的最大大小,如下所示:

  • 如果 MAX_STRING_SIZE = STANDARD,则适用于 Oracle Database 12c 之前版本的大小限制:VARCHAR2 和 NVARCHAR2 数据类型为 4000 字节,RAW 数据类型为 2000 字节。这是默认设置。

  • 如果 MAX_STRING_SIZE = EXTENDED,则 VARCHAR2、NVARCHAR2 和 RAW 数据类型的大小限制为 32767 字节。

所以你需要设置你的MAX_STRING_SIZE初始化参数来使它工作。

(我还没有机会玩 12c,所以我现在也只是按照文档所说的进行)。

于 2013-07-10T10:58:44.460 回答