什么是LOB类型数据
在ORACLE数据库中,LOB(Large Objects(大对象))是用来存储大量的二进制和文本数据的一种数据类型。在 Oracle8i 中开始提供 LOB 字段,在 Oracle10g 前最多只能存储 4G 数据,从 Oracle10g 开始,可以存储 8-128T 的数据,取决于你的数据库的块大小。
LOB又分为两种类型:
内部LOB类型:将数据以字节流的形式存储在数据库的内部。因而,内部LOB的许多操作都可以参与事务,也可以像处理普通数据一样对其进行备份和恢复操作。如:
BLOB:二进制大对象。定义一个 BLOB 变量,用于存储大量的二进制数据(如图像、视频、音频等),该二进制大对象存储于数据库中。
CLOB:字符型大对象(单字节字符数据)。定义一个 CLOB 变量,用于存储超长的文本数据,该字符型大对象存储于数据库中。
NCLOB:字符型大对象(多字节国家字符数据)。定义一个 NCLOB 变量,用于存储超长的文本数据,该字符型大对象存储于数据库中。
外部LOB类型:在数据库内仅存储数据在操作系统中的位置信息,而数据的实体以外部文件的形式存在于操作系统的文件系统中。因而,该类型所表示的数据是只读的,不参与事务。如:
BFILE:二进制文件。定义一个 BFILE 变量,它指向操作系统的一个文件,Oracle 会将其视为二进制数据进行处理。
以前内容转载自:Oracle - LOB(大对象数据类型),欲详细了解请移步。
cx_Oracle.LOB类型数据如何查看(读取)
日前从oracle查询数据时,本以为能正常返回需要的字符串数据,结果却返回了一个cx_Oracle.LOB object,这才第一次知道有这种类型。
找了一通资料之后发现cx_Oracle.LOB object有个read方法,我们只要先遍历cx_Oracle.LOB object,然后对每个元素使用read即可正常查看字符类型的原数据。