加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

oracle – 以字节为单元的Clob巨细

发布时间:2021-01-26 05:00:57 所属栏目:站长百科 来源:网络整理
导读:我有一个具有以下NLS配置的数据库 NLS_NCHAR_CHARACTERSET - AL16UTF16NLS_CHARACTERSET - AL32UTF8 有一个表,个中包括存储base64编码数据的clob列. 因为字符首要是英文和字母,我假设每个字符仅占用1个字节作为clob,行使NLS_CHARACTERSET的字符集举办编码.

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

NLS_NCHAR_CHARACTERSET  - AL16UTF16

NLS_CHARACTERSET - AL32UTF8

有一个表,个中包括存储base64编码数据的clob列.
因为字符首要是英文和字母,我假设每个字符仅占用1个字节作为clob,行使NLS_CHARACTERSET的字符集举办编码.

行使内联启用的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个字符.

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读