ORACLE初始化参数:NLS_LENGTH_SEMANTICS
初始化参数NLS_LENGTH_SEMANTICS用于指定CHAR列或VARCHAR2列的长度定义方式,默认值为BYTE。当设置该参数为BYTE时,定义CHAR列或VARCHAR2列采用字节长度方式;当设置该参数为CHAR时,定义CHAR列或VARCHAR2列采用字符个数方式。需要注意,设置该参数对于已存在参数没有作用。
该初始化参数是动态参数,可以使用ALTER SESSION或ALTER SYSTEM命令进行修改。示例如下:
SQL>ALTER SESSION SET nls_length_semantics=char;
SQL>CREATE TABLE t1(cola VACHAR2(4));
SQL>INSERT INTO t1 VALUES(‘北京’);
SQL>INSERT INTO t1 VALUES(‘BEIJING’);
上例将报错ORA-12899。
附甲骨文官方说明:
| 属性 | 说明 |
|---|---|
| 参数类型 | String |
| 语法 | NLS_LENGTH_SEMANTICS = stringExample: NLS_LENGTH_SEMANTICS = 'CHAR' |
| 默认值 | BYTE |
| 允许动态修改 | ALTER SESSION |
| 取值范围 | BYTE | CHAR |
NLS_LENGTH_SEMANTICS enables you to create CHAR and VARCHAR2 columns using either byte or character length semantics. Existing columns are not affected.
NCHAR, NVARCHAR2, CLOB, and NCLOB columns are always character-based. You may be required to use byte semantics in order to maintain compatibility with existing applications.
NLS_LENGTH_SEMANTICS does not apply to tables in SYS and SYSTEM. The data dictionary always uses byte semantics.

被折叠的 条评论
为什么被折叠?



