• 使用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)
            );
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    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
    )
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    (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)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55

    (3)查询表数据

    image-20211218190314236

    简单总结

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

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

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

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

  • 相关阅读:
    Win11开始菜单右键空白?Win11开始菜单右键没反应解决方法
    OI 数论中的上界估计与时间复杂度证明
    技术管理进阶——你遇到过耍小聪明的同学吗?
    【给你的臭宝推送天气的专属公众号】--理工男的浪漫
    看漫画学Python
    mac-m1-docker安装nacos异常
    (ECCV-2022)GaitEdge:超越普通的端到端步态识别,提高实用性
    PPO算法经典论文阅读
    代理的匿名级别有哪些?为什么匿名性很重要?
    Autosar Configuration(八) Security之导入DBC后配置SecOC同步报文和同步请求报文
  • 原文地址:https://blog.csdn.net/Mrkill123/article/details/127459535