01
大字段数据导出
create table t_testlob ( id int identity, name varchar(20), info1 blob, info2 clob);insert into t_testlob (name, info1, info2)values('张学名', 0xabcdef001, '武汉市东湖高新区未来科技城');insert into t_testlob (name, info1, info2)values('陈无良', 0xdfdfd234, '江苏省南京市雨花台区花神大道');insert into t_testlob (name, info1, info2)values('马梁', 0xfadaaf123, '上海市浦东新区上海市张江高科技园区');insert into t_testlob (name, info1, info2)values('李梅', 0xab121032def, '北京市海淀区中关村南大街');insert into t_testlob (name, info1, info2)values('程一航', 0xdadde110, '四川省成都市高新区天顺北街');commit;
create table t_testlob (
id int identity,
name varchar(20),
info1 blob,
info2 clob
);
insert into t_testlob (name, info1, info2)
values('张学名', 0xabcdef001, '武汉市东湖高新区未来科技城');
values('陈无良', 0xdfdfd234, '江苏省南京市雨花台区花神大道');
values('马梁', 0xfadaaf123, '上海市浦东新区上海市张江高科技园区');
values('李梅', 0xab121032def, '北京市海淀区中关村南大街');
values('程一航', 0xdadde110, '四川省成都市高新区天顺北街');
commit;
LOAD DATAINFILE '*'INTO TABLE t_testlobFIELDS '|'(ID,NAME,INFO1,INFO2)
LOAD DATA
INFILE '*'
INTO TABLE t_testlob
FIELDS '|'
(
ID,
NAME,
INFO1,
INFO2
)
dmfldr userid=SYSDBA/dameng123@192.168.88.101:5236 cOntrol=\'/dm8/backup/dmfldr/testlob.ctrl\' data=\'/dm8/backup/dmfldr/testlob.txt\' mode=\'out\' lob_directory=\'/dm8/backup/dmfldr\' lob_file_name=\'testlob.lob\'
dmfldr userid=SYSDBA/dameng123@192.168.88.101:5236
cOntrol=\'/dm8/backup/dmfldr/testlob.ctrl\'
data=\'/dm8/backup/dmfldr/testlob.txt\' mode=\'out\'
lob_directory=\'/dm8/backup/dmfldr\' lob_file_name=\'testlob.lob\'
02
大字段数据载入
场景一:DIRECT为TRUE
当载入的大字段数据在单独的数据文件中存放时(比如上述导出的大字段数据文件),需指定DIRECT=TRUE方式导入。
非数据库服务器上导入时,指定CLIENT_LOB为TRUE,LOB_DIRECTORY指定为大字段数据文件所在的客户端本地目录;数据库服务器上导入时,则指定CLIENT_LOB为FALSE,LOB_DIRECTORY指定为大字段数据文件所在服务器目录(需先把大字段文件传送到DM服务器)。
大字段数据文件在数据文件中指定,以“文件名:起始偏移:长度”的形式记录在数据文件中。
使用如下命令将上述导出的数据文件testlob.txt和testlob.lob导入到服务器192.168.88.102的T_TESTLOB表中(T_TESTLOB表提前创建):
dmfldr userid=SYSDBA/dameng123@192.168.88.102:5236 cOntrol=\'/dm8/backup/dmfldr/testlob.ctrl\' data=\'/dm8/backup/dmfldr/testlob.txt\' mode=\'in\' lob_file_name=\'testlob.lob\' client_lob=true lob_directory=\'/dm8/backup/dmfldr\' direct=true set_identity=false
dmfldr userid=SYSDBA/dameng123@192.168.88.102:5236
data=\'/dm8/backup/dmfldr/testlob.txt\' mode=\'in\'
lob_file_name=\'testlob.lob\' client_lob=true
lob_directory=\'/dm8/backup/dmfldr\' direct=true set_identity=false
从执行结果中可以看出共导入5行记录。
检查导入的数据:
当大字段列数据保存在数据文件中时,需指定DIRECT=FALSE方式导入。BLOB_TYPE参数指定BLOB列内容类型(包含HEX_CHAR和HEX,默认为HEX_CHAR十六进制)。
编辑数据文件testlobdata.txt,内容参考如下:
dmfldr userid=SYSDBA/dameng123@192.168.88.102:5236 cOntrol='d:/test/testlob.ctrl' data='d:/test/testlobdata.txt' mode='in' direct=false blob_type='hex'
cOntrol='d:/test/testlob.ctrl'
data='d:/test/testlobdata.txt' mode='in'
direct=false blob_type='hex'
执行结果显示如下:
往期回顾
干货攻略丨DM8归档日志挖掘