使用DMFLDR工具将Excel数据导入到达梦数据库

需求介绍

    需要将Excel文件test1.xlsx的数据导入到达梦数据库表test1中,文件内容如下:

image-20211218184547890

使用dmfldr工具无法直接将excel文件导入到数据库表中,需要将excel文件转换为csv格式,如果出现中文乱码,可以使用Windows记事本等工具将文件编码改为UTF-8。

转换为CSV格式之后,CSV格式默认每列以逗号’,'分割,文件内容如下:

image-20211218184827146

需要注意:Windows上的excel或者csv文件拷贝到Linux上之后,Windows格式的空格会变为"^M",需要在vim中使用set ff=unix 将文件格式修改为unix格式:

image-20211218185645068

操作步骤

1、创建表

CREATE TABLE TEST1
        (
                ID   INT         ,
                NAME VARCHAR(100),
                SEX  VARCHAR(3)  ,
                AGE  NUMBER      ,
                ADDR VARCHAR(100)
        );

2、使用DMFLDR将CSV文件内容装载到表中

(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)查询表数据

image-20211218190314236

简单总结

(1)使用dmfldr工具导入excel数据相对于迁移工具,可能要稍微复杂一点,涉及到文件格式转换、注意中文编码以及Windows文件与Linux文件格式兼容的问题(比如空格);

(2)在使用上也是基于命令行以及控制文件参数配置而非图形化操作,相对于该场景来说可能迁移工具更方便;

(3)如果CSV文件数据比较大,那么使用dmfldr效率可能会更高一些;

更多资讯请上达梦技术社区了解:https://eco.dameng.com

在Java中,如果你想要通过dmfldr快速装载接口来导入数据,通常这个过程涉及到数据持久化操作,可能是使用数据库连接或文件操作。`dmfldr`可能是某个特定框架、库或者工具提供的API,用于数据的加载和管理。 假设`dmfldr`是一个数据加载工具包,你可以按照以下步骤进行: 1. **引入依赖**:首先需要将`dmfldr`库添加到你的项目中,如果是Maven或者Gradle项目,会在pom.xml或build.gradle文件中声明依赖。 ```xml <!-- Maven --> <dependency> <groupId>com.example</groupId> <artifactId>dmfldr</artifactId> <version>1.0.0</version> </dependency> // Gradle implementation 'com.example:dmfldr:1.0.0' ``` 2. **配置连接信息**:如果`dmfldr`需要数据库连接,你需要提供相关的连接字符串(如JDBC URL、用户名和密码)。 ```java String dbUrl = "jdbc:mysql://localhost:3306/mydatabase"; String username = "root"; String password = "password"; // 创建连接 DataSource dataSource = new DriverManagerDataSource(dbUrl, username, password); ``` 3. **创建数据装载接口的实例并调用**:根据`dmfldr`提供的API,创建相应的数据装载器对象,并调用其导入数据的方法。 ```java DmflDrLoader loader = new DmflDrLoader(dataSource); loader.loadData("your_data_file_path", dataType); // dataType是你想要的数据类型 ``` 4. **处理结果**:装载完成后,检查返回的结果,比如是否成功导入,或者处理可能出现的错误。 注意这只是一个大概的示例,实际使用可能会因为`dmfldr`的具体实现而有所不同。记得查阅`dmfldr`的官方文档或API文档获取详细说明。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值