varchar2(n BYTE | CHAR)默认 - > CHAR或BYTE

时间:2011-09-19 21:33:36

标签: sql oracle

我支持的代码低于架构声明: -

create table sample (
        id number Primary key,
        username varchar2(100),
);

我查看了Oracle文档& varchar2有两种声明模式 varchar2(n BYTE)和varchar2(n CHAR),如果我没有明确指定BYTE或CHAR &安培;只声明用户名varchar2(500)然后将分配500个BYTES或500个字符?

感谢,

2 个答案:

答案 0 :(得分:35)

默认值为NLS_LENGTH_SEMANTICS参数设置的默认值。默认情况下,BYTE与旧版本的Oracle一致,其中没有使用字符长度语义的选项。如果您正在定义自己的模式并且使用的是可变宽度字符集(如AL32UTF8),我强烈建议将NLS_LENGTH_SEMANTICS设置为CHAR,因为您几乎总是打算以字节为单位指定长度。

答案 1 :(得分:11)

您可以使用以下查询检查当前值:

SELECT
  value

FROM
  NLS_DATABASE_PARAMETERS

WHERE
  parameter='NLS_LENGTH_SEMANTICS';