gpt4 book ai didi

oracle11g - 使用 unicode char set 选项安装 oracle 11g 时,char 和 nchar 数据类型有什么区别?

转载 作者:行者123 更新时间:2023-12-04 21:19:23 25 4
gpt4 key购买 nike

我使用 unicode char set 选项安装 oracle 11g。我发现我可以将 unicode 字符插入到 CHAR 数据类型列中。所以我的问题是:
使用 unicode 选项安装 oracle 11g 时,CHAR 和 NCHAR 数据类型有什么区别?

最佳答案

有两个主要区别。

  • 长度语义的默认值。默认情况下
    CHAR(30) != NCHAR(30)但是 CHAR(30 CHAR) = NCHAR(30) .

    默认长度语义(由 NLS_LENGTH_SEMANTICS 参数指定)用于 CHAR 但不用于 NCHAR。此参数的默认值是字节。 NCHAR 的长度总是以字符为单位。这很重要,因为 NCHAR(30) 将始终包含 30 个 unicode 字符 - CHAR(30 CHAR) 也是如此 - 但 CHAR(30) 默认仅包含 30 个字节,这可能等于或不等于 30 个 unicode 字符。
  • AL32UTF8(数据库字符集 unicode 默认值)和 AL16UTF8(NLS_NCHAR_CHARACTERSET 默认值)不等价。两者都是可变长度的 unicode 字符集,但存储字符的方式不同,因此两者之间的存储要求有所不同,前者使用 1、2、3 有时每个字符 4 个字节,后者每个字符使用 2 个字节,有时每个字符 4 个字节)。您的里程将根据您存储的字符而有所不同。

    此外,NCHAR 支持在许多客户端应用程序和某些 Oracle 组件中受到限制,因此如果您将 AL32UTF8 用于数据库字符集,Oracle 的建议是坚持使用 CHAR 而根本不使用 NCHAR。
  • 关于oracle11g - 使用 unicode char set 选项安装 oracle 11g 时,char 和 nchar 数据类型有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15538805/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com