首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Clob大小(字节)

Clob大小(字节)
EN

Stack Overflow用户
提问于 2014-09-25 13:45:03
回答 1查看 1.6K关注 0票数 6

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

代码语言:javascript
复制
NLS_NCHAR_CHARACTERSET  - AL16UTF16

NLS_CHARACTERSET - AL32UTF8

有一个表,其中有一个clob列,存储base64编码的数据。因为这些字符大多是英文和字母,所以我假设每个字符只占1字节,使用NLS_CHARACTERSET的字符集进行编码。

有了内联启用的clob列,clob将被内联存储,除非它的大小超过4096字节。但是,当我试图用2048个字符存储一组数据时,我发现它不是内联存储的(通过检查表DBA_TABLES)。那么,这是否意味着每个字符不使用1字节?有人能详细解释一下吗?

另一个测试添加了:创建一个具有块大小为8kb的clob列的表,以便初始段大小为65536字节。在clob列中插入一行,其中包含32,768个字符。第二个范围的创建可以通过查询dba_segments来实现。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-30 14:17:55

01/server.112/e10729/ch6unicode.htm#r2c1-t12

上面写着:

当数据库字符集是多字节的(如UTF8或AL32UTF8 )时,CLOB列中的数据以与UCS-2兼容的格式存储。这意味着在转换数据时,英语文档所需的存储空间会加倍。

因此,它看起来像CLOB在内部存储一切为UCS-2 (Unicode),即每个符号固定的两个字节。因此,它存储内联4096/2 = 2048个字符。

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

https://stackoverflow.com/questions/26040213

复制
相关文章

相似问题

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