DB2 V9.7 for Linux, UNIX, and Windows

LOB 导出注意事项

导出包含大对象 (LOB) 列的表时,缺省操作是对每个 LOB 值导出最多 32 KB,以便将其与列数据的余下部分放在同一文件中。如果要导出超过 32 KB 的 LOB 值,那么应将 LOB 数据写至单独的文件以避免截断。

要指定应将 LOB 写至它自身所在的文件,请使用 lobsinfile 文件类型修饰符。此修饰符指示导出实用程序将 LOB 数据放在 LOBS TO 子句指定的目录中。使用 LOBS TOLOBFILE 会隐式激活 lobsinfile 文件类型修饰符。缺省情况下,LOB 值与导出的关系数据将写至同一路径。如果使用 LOBS TO 选项指定了一个或多个路径,那么导出实用程序将循环使用这些 LOB 路径,以便将每个成功的 LOB 值写入相应的 LOB 文件。还可使用 LOBFILE 选项对输出 LOB 文件指定名称。如果指定了 LOBFILE 选项,那么 lobfilename 的格式为 lobfilespec.xxx.lob,其中 lobfilespec 是为 LOBFILE 选项指定的值,而 xxx 是导出实用程序生成的 LOB 文件的序号。否则,lobfilename 的格式为:exportfilename.xxx.lob,其中 exportfilename 是为 EXPORT 命令指定的已导出输出文件的名称,而 xxx 是导出实用程序生成的 LOB 文件的序号。

缺省情况下,多个 LOB 将写至单个文件,但您也可指定将各个 LOB 存储在不同文件中。导出实用程序会生成 LOB 位置说明符 (LLS),以允许将多个 LOB 存储在一个文件中。写至导出输出文件的 LLS 是一个指示 LOB 数据在文件中存储位置的字符串。LLS 的格式为 lobfilename.ext.nnn.mmm/,其中 lobfilename.ext 是包含 LOB 的文件的名称,nnn 是该文件内 LOB 的偏移量(以字节为单位计量),而 mmm 是 LOB 的长度(以字节为单位计量)。例如,db2exp.001.123.456/ 的 LLS 表示 LOB 位于文件 db2exp.001 中,以 123 字节的偏移量开始进入文件,并且长度为 456 字节。如果 LLS 中指示的大小为 0,那么 LOB 被视为长度是 0。如果长度为 -1,那么 LOB 被视为 NULL,并且忽略偏移量和文件名。

如果不希望各 LOB 数据并置于同一文件,请使用 lobsinsepfiles 文件类型修饰符以将每个 LOB 写至单独文件。

注: IXF 文件格式不会存储该列的 LOB 选项,如用于指示是否记录 LOB 列的选项。这意味着导入实用程序不能重新创建包含定义为 1 GB 或更大的 LOB 列的表。
示例 1
以下示例说明如何将 LOB(其中已导出 LOB 文件具有指定基本名称 lobs1)导出至 DEL 文件:
      db2 export to myfile.del of del lobs to mylobs/
      lobfile lobs1 modified by lobsinfile
      select * from emp_photo
示例 2
以下示例说明如何将 LOB 导出到 DEL 文件,其中每个 LOB 值将写至单独文件并且 lobfiles 将写至两个目录:
db2 export to myfile.del of del
      lobs to /db2exp1/, /db2exp2/ modified by lobsinfile
select * from emp_photo