创建大型物体
将大型对象定义为 Db2 不同于将其他类型的数据和对象定义为大型对象。
准备工作
Db2 有时会隐式创建LOB表空间、辅助表以及表或分区中每个LOB列的辅助表索引。 更多信息,请参阅 LOB表空间隐式创建。
如果 Db2 没有隐式创建LOB表空间、辅助表和辅助表索引,则必须通过发出CREATE TABLESPACE、CREATE AUXILIARY TABLE和CREATE INDEX语句来创建这些对象。
关于本任务
大型对象 和LOB 指的是 Db2 对象,可用于存储大量数据。 LOB是一个长度可变的字符串,最多可包含2GB的数据(1字节)。 Db2 支持以下LOB数据类型:
- 二进制大对象 (binary large object, BLOB)
- 使用BLOB来存储二进制数据,例如图片、语音和混合媒体。
- 字符大对象 (character large object, CLOB)
- 使用CLOB来存储SBCS或混合字符数据,例如文档。
- double-byte character large object(双字节字符大对象,DBCLOB)
- 使用DBCLOB来存储仅包含DBCS数据的数据。
有关LOB数据类型的更多信息,请参阅大型对象(LOB )。
过程
要定义LOB列并将大对象数据移动到 Db2 ,请完成以下步骤:
示例
假设您必须定义一个LOB表空间和一个辅助表来保存员工简历。 您还必须在辅助表上定义一个索引。 您必须在同一数据库中定义关联基本表的LOB表空间。 假设 EMP_PHOTO_RESUME 是基础表。 这个基本表有一个名为EMP_RESUME的LOB列。 您可以使用类似语句来定义LOB表空间、辅助表空间和索引:
CREATE LOB TABLESPACE RESUMETS
IN MYDB
LOG NO;
COMMIT;
CREATE AUXILIARY TABLE EMP_RESUME_TAB
IN MYDB.RESUMETS
STORES EMP_PHOTO_RESUME
COLUMN EMP_RESUME;
CREATE UNIQUE INDEX XEMP_RESUME
ON EMP_RESUME_TAB;
COMMIT;您可以使用LOG子句来指定是否记录对表空间中的LOB列所做的更改。 前面的CREATE LOB TABLESPACE语句中的LOG NO子句表示不对RESUMETS表空间进行记录。