在 Oracle9i Database Release 2 之前,LOB 最多只能存储 4G 数据;从 Oracle10g Database
Release 1 开始,可以存储 8-128T 的数据,取决于你的数据库的块大小。
PL/SQL 中你可以定义如下的 LOB 字段类型:
(1)BFILE:二进制文件。定义一个 BFILE 变量,它指向操作系统的一个文件,Oracle
会将其视为二进制数据进行处理。该文件存储于数据库外。
(2)BLOB:二进制大对象。定义一个 BLOB 变量,它指向一个二进制大对象的位置。该二进制大对象存储于数据库中。
(3)CLOB:字符型大对象。定义一个 CLOB 变量,该字符型大对象存储于数据库中。
(4)NCLOB:National Language Support (NLS) character large object. Declares a
variable that holds a LOB locator pointing to a large block of single-byte,
fixed-width multibyte, or variable-width multibyte character data stored inside
the database.
存储于 Oracle 内的大字段类型,可以参与 Oracle 的事务处理。而存储于数据库外的大字段类型则不能参与 Oracle
的事务处理,不能被提交和回滚,只能依据文件系统来保证数据的完整性。
至于 LONG 和 LONG RAW,Oracle已经不推荐使用了。它们的存在,只是为了向前兼容。你应该从 LONG 转向 BLOG 和
CLOB,如果你的系统中存在 LOGN 类型的字段,可以参考《Application Developer's Guide》中的 Large Objects 将
LONG 字段转为 LOB 字段。
后继介绍中,我们会用下面这个表来做测试:
|
CREATE TABLE waterfalls ( falls_name VARCHAR2(80), falls_photo
BLOB, falls_directions CLOB, falls_description NCLOB,
falls_web_page BFILE); |