我想知道Oracle的CLOB相比BLOB数据类型有什么优势。两者都有(4 GB-1)*DB_BLOCK_SIZE的数据存储限制。
一个文本字符串如果超过4000个字节就无法放入VARCHAR2列中。现在,我可以使用CLOB和BLOB来存储这个字符串。
每个人都说,“CLOB适用于字符数据”,而“BLOB适用于二进制数据,如图像、非结构化文档”。
但是我发现我也可以在BLOB中存储字符数据。
我想知道的是:基础问题是为什么总是使用CLOB而不是BLOB?这与编码有关吗?
也许问题标题应该是“CLOB如何与BLOB不同地处理字符数据?”
一个文本字符串如果超过4000个字节就无法放入VARCHAR2列中。现在,我可以使用CLOB和BLOB来存储这个字符串。
每个人都说,“CLOB适用于字符数据”,而“BLOB适用于二进制数据,如图像、非结构化文档”。
但是我发现我也可以在BLOB中存储字符数据。
我想知道的是:基础问题是为什么总是使用CLOB而不是BLOB?这与编码有关吗?
也许问题标题应该是“CLOB如何与BLOB不同地处理字符数据?”
select * from ...
,然后快速告诉我 BLOB 内部的文本是什么。如果你无法读取它,那么告诉我存储这些字节时使用的编码方式,因为如果你想将原始字节转换回可读字符串,就必须知道编码方式。 - user330315REGEXP_xxx
、SUBSTR
、xPAD
、xTRIM
等,仅适用于CLOB
而不适用于BLOB
。为什么你会考虑将字符数据存储在BLOB
中呢? - Wernfried Domscheit