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

好文链接

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。