另一种选择是将带有 LOB 的表导出到本地计算机,然后导入另一个 dashDB。
将 dashDB 表导出到本地客户端的一种方法是在客户端机器上的 DB2 命令行处理器 (CLP) 中运行 EXPORT 命令。为此,您需要安装 IBM Data Server Runtime Client,然后在客户端中对 dashDB 数据库进行编目,如下所示:
CATALOG TCPIP NODE mydash REMOTE dashdb-txn-small-yp-lon02-99.services.eu-gb.bluemix.net SERVER 50000;
CATALOG DATABASE bludb AS dash1 AT NODE mydash;
CONNECT TO dash1 USER <username> USING <password>;
现在,让我们导出名为“mytable”的表,以便将 LOB 列写入单独的文件:
export to mytable.del of del
lobfile mylobs
modified by lobsinfile
select * from mytable;
此导出命令会生成文件 mytable.del 和 mylobs.001.lob。文件 mytable.del 包含指向文件 mylobs.001.lob 的指针,这些指针指定每个值的偏移量和长度。
如果 LOB 数据太大而无法放入单个文件,则会创建其他文件 mylobs.002.lob、mylobs.003.lob 等。
请注意,导出的数据将以未压缩的形式从 dashDB 发送到您的本地客户端,这可能需要一些时间,具体取决于数据量。
如果 .DEL 和 .LOB 文件位于客户端计算机上,例如您的笔记本电脑或本地服务器,您可以使用 IMPORT 命令将这些文件提取到具有 LOB 列的表中。在 CLP 中,您将首先连接到要加载到的 dashDB 数据库。
假设原始表已导出到文件 mytable.del 和 mylobs.001.lob,并且这些文件现在位于您的客户端计算机上的 /mydata 目录中。然后此命令会将数据和 LOB 加载到目标表中:
IMPORT FROM /mydata/mytable.del OF DEL
LOBS FROM /mydata
MODIFIED BY LOBSINFILE
INSERT INTO mytable2;
这个 IMPORT 命令可以在您的客户机上的 DB2 命令行处理器中运行。