我支持的代码低于架构声明: -
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个字符?
感谢,
答案 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';