将达梦数据库中含 LOB 字段的表快速导出至平面文件,从平面文件导入至数据库表中

    我们有时需要在达梦数据库和异构数据库间进行快速的数据迁移,因此,如何将达梦数据库中的表导出至平面文本文件,或将平面文本文件中的数据快速导入至表中就显得尤为关键了。
    下面我将简单做一个实验,将达梦数据库中含有 LOB 大字段的表导出至平面文件,从平面文件导入至数据库表中。

0. 在达梦数据库中构建实验环境(创建表空间、用户、测试表)
disql SYSDBA/Dameng123@192.168.56.11:5236
create tablespace TESTTBS datafile '/dm8/data/DAMENG/TESTTBS01.DBF' size 32 autoextend on;
create user TEST identified by Dameng123 default tablespace TESTTBS default index tablespace TESTTBS;
exit
disql TEST/Dameng123@192.168.56.11:5236
SQL>
drop table T_LOB;
create table T_LOB(c1 int, c2 varchar(20), c3 blob, c4 clob);
insert into T_LOB values (1, 'aaa', 0xABC1234567890DE, 'This is one');
insert into T_LOB values (2, 'bbb', 0xABC1234567890DE, 'This is two');
insert into T_LOB values (3, 'ccc', 0xABC1234567890DE, 'This is three');
commit;
select * from T_LOB;
2. 导出表数据

创建导出目录
mkdir /dm8/fldr

创建导出、导入表的控制文件
cat /dm8/fldr/fldr_lob.ctl
========================================================
LOAD DATA
INFILE '/dm8/fldr/t_lob.txt'
INTO TABLE TEST.T_LOB
FIELDS '|'
(C1,C2,C3,C4)

========================================================

导出表数据至平面文件,LOB字段会导出成二进制文件
dmfldr test/Dameng123@192.168.56.11:5236 control=\'/dm8/fldr/fldr_lob.ctl\' lob_directory=\'/dm8/fldr\' mode=\'out\' lob_file_name=\'t_lob.lob\' log=\'/dm8/fldr/fldr_lob_out.log\'

查看导出日志
cat /dm8/fldr/fldr_lob_out.log

3. 清空表数据
disql TEST/Dameng123@192.168.56.11:5236
SQL>
truncate table T_LOB;
select * from T_LOB;
exit

4. 从平面文件导入数据库至表
dmfldr test/Dameng123@192.168.56.11:5236 control=\'/dm8/fldr/fldr_lob.ctl\' lob_directory=\'/dm8/fldr\' mode=\'in\' lob_file_name=\'t_lob.lob\' log=\'/dm8/fldr/fldr_lob_in.log\'

查看导入日志
cat /dm8/fldr/fldr_lob_in.log

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值