赞
踩
需要将Excel文件test1.xlsx的数据导入到达梦数据库表test1中,文件内容如下:
使用dmfldr工具无法直接将excel文件导入到数据库表中,需要将excel文件转换为csv格式,如果出现中文乱码,可以使用Windows记事本等工具将文件编码改为UTF-8。
转换为CSV格式之后,CSV格式默认每列以逗号’,'分割,文件内容如下:
需要注意:Windows上的excel或者csv文件拷贝到Linux上之后,Windows格式的空格会变为"^M",需要在vim中使用set ff=unix 将文件格式修改为unix格式:
CREATE TABLE TEST1
(
ID INT ,
NAME VARCHAR(100),
SEX VARCHAR(3) ,
AGE NUMBER ,
ADDR VARCHAR(100)
);
(1) 创建dmfldr控制文件
[dmdba@localhost bin]$ cat /home/dmdba/test1.ctl OPTIONS ( SKIP = 0 ROWS = 50000 DIRECT = TRUE INDEX_OPTION = 2 CHARACTER_CODE='UTF-8' /*指定数据文件中数据的编码格式,即下面的test1.csv中数据的编码格式*/ ) LOAD DATA INFILE '/home/dmdba/test1.csv' BADFILE '/home/dmdba/test1.bad' INTO TABLE test1 FIELDS ',' /*下面列名与csv文件中对应数据相匹配,否则会报错*/ (NAME, AGE, SEX, ADDR, ID )
(2)使用dmfldr装载数据
[dmdba@localhost bin]$ ./dmfldr userid=SYSDBA/SYSDBA@localhost:5238 control=\'/home/dmdba/test1.ctl\' dmfldr V8 dmfldr: Copyright (c) 2011, 2015, Dameng. All rights reserved. 控制文件: 加载行数:全部 每次提交服务器行数:50000 跳过行数:0 允许错误数:100 是否直接加载:Yes 是否插入自增列:No 数据是否已按照聚集索引排序:No 字符集:UTF-8 数据文件共1个: /home/dmdba/test1.csv 错误文件:/home/dmdba/test1.bad 目标表:TEST1 列名 包装数据类型 终止 NAME CHARACTER , AGE CHARACTER , SEX CHARACTER , ADDR CHARACTER , ID CHARACTER , 行缓冲区数量: 4 任务线程数量: 4 11行记录已提交 目标表:TEST1 11 行加载成功。 由于数据格式错误,0行 丢弃。 由于数据错误,0行 没有加载。 跳过的逻辑记录总数:0 读取的逻辑记录总数:11 拒绝的逻辑记录总数:0 用时:8.235(ms)
(3)查询表数据
(1)使用dmfldr工具导入excel数据相对于迁移工具,可能要稍微复杂一点,涉及到文件格式转换、注意中文编码以及Windows文件与Linux文件格式兼容的问题(比如空格);
(2)在使用上也是基于命令行以及控制文件参数配置而非图形化操作,相对于该场景来说可能迁移工具更方便;
(3)如果CSV文件数据比较大,那么使用dmfldr效率可能会更高一些;
更多资讯请上达梦技术社区了解:https://eco.dameng.com
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。