gpt4 book ai didi

oracle - Clob 大小(以字节为单位)

转载 作者:行者123 更新时间:2023-12-04 18:41:13 27 4
gpt4 key购买 nike

我有一个具有以下 NLS 设置的数据库

NLS_NCHAR_CHARACTERSET  - AL16UTF16

NLS_CHARACTERSET - AL32UTF8

有一个带有 clob 列的表,其中存储了 base64 编码 数据。
由于字符主要是英文和字母,我假设每个字符仅占用 1 个字节作为使用 NLS_CHARACTERSET 字符集进行编码的 clob。

使用启用内联的 clob 列,该 clob 将被内联存储,除非它的大小超过 4096 字节。但是,当我尝试存储一组 2048 个字符的数据时,我发现它不是内联存储的(通过检查表 DBA_TABLES)。那么这是否意味着每个字符不只使用 1 个字节?任何人都可以详细说明这一点吗?

另一项测试补充说:
创建一个包含块大小为 8kb 的 clob 列的表,以便初始段大小为 65536 字节。
在 clob 列中插入包含 32,768 个字符的行后。可以通过查询 dba_segments 来告知第二个区的创建。

最佳答案

http://docs.oracle.com/cd/E11882_01/server.112/e10729/ch6unicode.htm#r2c1-t12

它说:

Data in CLOB columns is stored in a format that is compatible with UCS-2 when the database character set is multibyte, such as UTF8 or AL32UTF8. This means that the storage space required for an English document doubles when the data is converted



所以看起来 CLOB 在内部将所有内容存储为 UCS-2 (Unicode),即每个符号固定 2 个字节。因此,它存储内联 4096/2 = 2048 个字符。

关于oracle - Clob 大小(以字节为单位),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26040213/

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