从 DB2 和 Oracle 角度看 CLOB 和 BLOB 的区别?

Posted

技术标签:

【中文标题】从 DB2 和 Oracle 角度看 CLOB 和 BLOB 的区别?【英文标题】:Difference between CLOB and BLOB from DB2 and Oracle Perspective? 【发布时间】:2014-03-01 12:00:38 【问题描述】:

我对这两种数据类型非常着迷。据Oracle Docs介绍如下:

BLOB : 可变长度的二进制大对象字符串,最长可达 2GB (2,147,483,647)。主要用于保存非传统数据,例如语音或混合媒体。与 FOR BIT DATA 字符串一样,BLOB 字符串不与字符集相关联。

CLOB : 可变长度字符大对象字符串,最长可达 2GB (2,147,483,647)。 CLOB 可以存储单字节字符串或多字节、基于字符的数据。 CLOB 被认为是一个字符串。

我不知道,从 DB2 和 Oracle 的角度来看,两者是否有区别?我的意思是,DB2 CLOB 和 Oracle CLOB 之间以及 DB2 BLOB 和 Oracle BLOB 之间有什么区别? DB2 和 Oracle 中的最大大小是多少?只有 2 GB 吗?

【问题讨论】:

【参考方案1】:

BLOB 用于二进制数据(视频、图像、文档、其他

CLOB 用于大文本数据(text

mysql 的最大大小为 2GB

Oracle 128TB 上的最大大小

【讨论】:

【参考方案2】:

BLOB 主要用于保存非传统数据,例如图像、视频、语音或混合媒体。 CLOB 旨在保留基于字符的数据。

【讨论】:

当您必须重新编码或传输它们时,差异就很明显了。二进制对象不应该在传输中进行翻译。字符对象可以包含混合宽度字符。二进制对象可能是不可打印的。所有字符都是二进制的,离开数据库后不一定反过来,离开平台后也不一定。【参考方案3】:

它们可以被认为是等价的。大小限制是一样的:

CLOB 的最大长度(以字节或 OCTETS 为单位)2 147 483 647 BLOB 的最大长度(以字节为单位)2 147 483 647

还有用于双字节字符的 DBCLOB。

参考资料:

DB2 中的 LOB 定义:http://pic.dhe.ibm.com/infocenter/db2luw/v10r5/topic/com.ibm.db2.luw.sql.ref.doc/doc/r0008473.html SQL 和 XML 限制:http://pic.dhe.ibm.com/infocenter/db2luw/v10r5/topic/com.ibm.db2.luw.sql.ref.doc/doc/r0001029.html

【讨论】:

“它们可以被认为是等效的”大小。不同类型的包含数据的行为可能非常不同,并且可能应该包含在您的答案中。提示在首字母缩写词的第一个字母中。

以上是关于从 DB2 和 Oracle 角度看 CLOB 和 BLOB 的区别?的主要内容,如果未能解决你的问题,请参考以下文章

oracle 怎么把clob转换成string pb

Oracle怎样把varchar2型转成number型

从 DB2 迁移到 PostgreSQL-BLOB()/CLOB()

oracle中clob可以转成varchar2吗

oracle怎么导出含有Clob大数据字段类型的表

oracle varchar2 为啥改不成clob