varchar2(n BYTE | CHAR)默认-> CHAR或BYTE [英] varchar2(n BYTE|CHAR) default -> CHAR or BYTE

查看:122
本文介绍了varchar2(n BYTE | CHAR)默认-> CHAR或BYTE的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我支持具有以下模式声明的代码:-

I am supporting code that has below schema declaration:-

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

我查阅了Oracle文档& varchar2有两种声明模式 varchar2(n BYTE)和varchar2(n CHAR),如果我未明确指定BYTE或CHAR &只需声明用户名varchar2(500),那么将分配500个字节还是500个字符?

I looked up on Oracle documentation & varchar2 has two declaration modes varchar2(n BYTE) and varchar2(n CHAR), If I don't specify explicitly BYTE or CHAR & just declare username varchar2(500) then will 500 BYTES be allocated or 500 characters?

谢谢

推荐答案

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

The default will be whatever your NLS_LENGTH_SEMANTICS parameter is set to. By default, that is BYTE to be consistent with older versions of Oracle where there was no option to use character length semantics. If you are defining your own schema and you are using a variable width character set (like AL32UTF8), I'd strongly recommend setting NLS_LENGTH_SEMANTICS to CHAR because you almost always intended to specify lengths in characters not in bytes.

这篇关于varchar2(n BYTE | CHAR)默认-> CHAR或BYTE的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆