我支持以下模式声明的代码: -
create table sample (
id number Primary key,
username varchar2(100),
);
Run Code Online (Sandbox Code Playgroud)
我查看了Oracle文档&varchar2有两个声明模式varchar2(n BYTE)和varchar2(n CHAR),如果我没有明确指定BYTE或CHAR并且只声明用户名varchar2(500)那么将分配500个BYTES或500个字符?
谢谢,
Jus*_*ave 35
默认值是您的NLS_LENGTH_SEMANTICS
参数设置为的任何值.默认情况下,这BYTE
与Oracle的旧版本一致,其中没有使用字符长度语义的选项.如果您正在定义自己的模式并且使用的是可变宽度字符集(如AL32UTF8),我强烈建议设置NLS_LENGTH_SEMANTICS
为CHAR,因为您几乎总是打算以字节而不是以字节为单位指定长度.
Den*_*gin 11
您可以使用以下查询检查当前值:
SELECT
value
FROM
NLS_DATABASE_PARAMETERS
WHERE
parameter='NLS_LENGTH_SEMANTICS';
Run Code Online (Sandbox Code Playgroud)