首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >varchar2(10)、varchar2(10字节)和varchar2(10字符)的差异

varchar2(10)、varchar2(10字节)和varchar2(10字符)的差异
EN

Stack Overflow用户
提问于 2019-02-05 11:06:11
回答 2查看 11.3K关注 0票数 2

客户告诉我用varchar2(10 char)代替varchar2(10 byte)。我完全不知道varchar2(10),varchar2(10 char)varchar2(10 byte)有什么区别。另外,你能告诉我在哪种情况下我们应该使用。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-02-05 11:08:31

VARCHAR2(10 byte)将支持最多10个字节的数据,多字节字符集中的数据可能只有两个字符。

VARCHAR2(10 char)可以支持多达40个字节的信息,并将支持多达10个字符的数据。

Varchar2(10)使用NLS_LENGTH_SEMANTICS的当前值来确定字符串的限制。

如果是字节,则为10字节。

如果是char,则是10个字符。

在多字节字符集中,这些可以是不同的!因此,如果NLS_LENGTH_SEMANTICS =字节,则可能只能在varchar2中存储5个字符。因此,varchar2(10字符)是显式的。这可以存储多达10个字符。Varchar2(10)是隐式的。它可以存储10个字节或10个字符,这取决于DB配置。

ocacle问题链接

票数 7
EN

Stack Overflow用户

发布于 2019-02-05 11:10:17

来自asktom ID:9532325800346614530

Varchar2(10)使用NLS_LENGTH_SEMANTICS的当前值来确定字符串的限制。 如果这是字节,那么它是10字节。 如果它是char,那么它是10个字符。 在多字节字符集中,这些可以是不同的!因此,如果NLS_LENGTH_SEMANTICS =字节,则可能只能在varchar2中存储5个字符。 因此,varchar2(10字符)是显式的。这可以存储多达10个字符。Varchar2(10)是隐式的。它可以存储10个字节或10个字符,这取决于DB配置。 最好是明确的(10个字符)。尽管所有prod/test/dev数据库对NLS_LENGTH_SEMANTICS的设置应该相同,但并不意味着它们具有.

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54533047

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档