DMFLDR数据载入使用实践
1、DMFLDR概述
1.1DMFLDR功能介绍
dmfldr(DM Fast Loader)是 DM 提供的快速数据装载命令行工具。用户通过使用 dmfldr 工具能够把按照一定格式
排序的文本数据以简单、快速、高效的方式载入到 DM 数据库中,或把 DM 数据库中的数据按照一定格式写入文本文件。
DMFLDR体系结构

当进行数据载入时,dmfldr 客户端接收用户提交的命令与参数,分析控制文件与数据文件,将数据打包发送给服务器端的 dmfldr 模块,由服务器完成数据的真正装载工作。并分析服务器返回的消息,必要时根据用户参数指定生成日志文件与错误数据文件。
当进行数据导出时,dmfldr 客户端接收用户提交的命令与参数,分析控制文件,将用户要求转换成相应消息发送给服务器端的 dmfldr 模块。服务器解析并打包需要导出的数据,发送给 dmfldr 客户端,客户端将数据写入指定的数据文件,必要时根据用户参数指定生成日志文件。
1.2DMFLDR参数
[dmdba@lei2 ~]$ dmfldr help
version: 03134284194-20240703-234060-20108 Pack1
格式: ./dmfldr KEYWORD=value例程: ./dmfldr SYSDBA/SYSDBA CONTROL='/opt/data/fldr.ctl'USERID 必须是命令行中的第一个参数
字符串类型参数必须以引号封闭关键字 说明(默认值)
--------------------------------------------------------------------------------
USERID 用户名/口令, 格式:{<username>[/<password>] | /}[@<connect_identifier>][<option>] [<os_auth>]<connect_identifier> : [<svc_name> | host[:port] | <unixsocket_file>]<option> : #{<extend_option>=<value>[,<extend_option>=<value>]...}--此行外层{}是为了封装参数之用,书写时需要保留<os_auth> : AS {SYSDBA|SYSSSO|SYSAUDITOR|USERS|AUTO}
CONTROL 控制文件,字符串类型
LOG 日志文件,字符串类型 (fldr.log)
BADFILE 错误数据记录文件,字符串类型 (fldr.bad)
SKIP 初始忽略逻辑行数 (0)
LOAD 需要装载的行数 (ALL)
ROWS 提交频次 (50000), DIRECT为FALSE有效
DIRECT 是否使用快速方式装载 (TRUE)
SET_IDENTITY 是否插入自增列 (FALSE)
SORTED 数据是否已按照聚集索引排序 (FALSE)
INDEX_OPTION 索引选项 (1)1 不刷新二级索引,数据按照索引先排序,装载完后再将排序的数据插入索引2 不刷新二级索引,数据装载完成后重建所有二级索引3 刷新二级索引, 数据装载的同时将数据插入二级索引
ERRORS 允许的最大数据错误数 (100)
CHARACTER_CODE 字符编码,字符串类型 (GBK, UTF-8, SINGLE_BYTE, EUC-KR)
MODE 装载方式,字符串类型 IN表示载入,OUT表示载出,OUTORA表示载出ORACLE (IN)
CLIENT_LOB 大字段目录是否在本地 (FALSE)
LOB_DIRECTORY 大字段数据文件存放目录
LOB_FILE_NAME 大字段数据文件名称,仅导出有效 (dmfldr.lob)
BUFFER_NODE_SIZE 读入文件缓冲区的大小 (10MB),有效值范围1~2048
LOG_SIZE 日志信息缓冲区的大小 (1MB),有效值范围1~100
READ_ROWS 工作线程一次最大处理的行数 (100000),最大支持2^26-10000
NULL_MODE 载入时NULL字符串是否处理为NULL载出时空值是否处理为NULL字符串 (FALSE)
NULL_STR 载入时视为NULL值处理的字符串
SEND_NODE_NUMBER 运行时发送节点的个数 (20),有效值范围16~65535
TASK_THREAD_NUMBER 处理用户数据的线程数目,默认与处理器核数量相同,有效值范围1~128
BLDR_NUM 服务器BLDR数目 (64),有效值范围1~1024
BDTA_SIZE bdta的大小 (5000),有效值范围100~10000
COMPRESS_FLAG 是否压缩bdta (FALSE)
MPP_CLIENT MPP环境,是否本地分发 (TRUE)
SINGLE_FILE MPP/DPC环境,是否只生成单个数据文件(FALSE)
LAN_MODE MPP/DPC环境,是否以内网模式装载数据(FALSE)
UNREP_CHAR_MODE 非法字符处理选项(0),为0时表示跳过该数据行,为1时表示使用(*)替换错误字节
SILENT 是否静默方式装载数据(FALSE)
BLOB_TYPE BLOB类型字段数据值的实际类型,字符串类型 (HEX_CHAR)HEX表示值为十六进制,HEX_CHAR表示值为十六进制字符类型仅在direct=FALSE有效
OCI_DIRECTORY OCI动态库所在的目录
DATA 指定数据文件路径
ENABLE_CLASS_TYPE 允许用户导入CLASS类型数据 (FALSE)
FLUSH_FLAG 提交时是否立即刷盘 (FALSE)
IGNORE_BATCH_ERRORS 是否忽略错误数据继续导入 (FALSE)
SINGLE_HLDR_HP 是否使用单个HLDR装载HUGE水平分区表 (TRUE)
EP 指定需要发送数据的站点序号列表,仅向MPP/DPC环境导入数据时有效
PARALLEL 是否开启并行装载(FALSE)
SQL 使用自定义查询语句,仅导出模式有效
SQLFILE 自定义查询语句所在文件,仅导出模式有效
TABLE 导入/出表
ROW_SEPERATOR 行分隔符
FIELD_SEPERATOR 列分隔符
COMMIT_OPTION 提交选项(0), 0:每发送一批数据后提交, 1:发送完所有数据后提交
APPEND_OPTION 追加选项(0), 0: 追加方式, 1: 替代方式, 2: 插入方式
COLNAME_HEADING 是否在导出文件头中打印列名(FALSE)
IGNORE_AIMLESS_DATA 是否忽略无目标数据(FALSE)
LOB_AS_VARCHAR 是否将CLOB作为VARCHAR进行导入导出(FALSE)
LOB_AS_VARCHAR_SIZE 将CLOB作为VARCHAR进行导入导出时, lob数据最大大小(10MB)
LOG_LEVEL 记录错误数据信息级别(3), 0: 不记录 1: 只记录到log文件 2: 只记录到bad文件 3: 记录到log和bad文件 4: 错误仅输出到屏幕
FLDR_INI 配置文件路径,字符串类型
RECONN 自动重连次数(0)
RECONN_TIME 自动重连等待时间(5), 单位(s), 有效值范围(1~10000)
WIDTH 设置列数据宽度
SEDF 被替换的字符列表
SEDT 用于替换的字符列表
ESCAPE 转义符
EXPORT_MODE MPP/DPC环境, 使用sql语句时的导出模式(0), 0: 普通模式 1: 快速模式, LOCAL方式连接
BAD_FILE_MODE 错误数据文件模式(0), 0: 普通模式 1: 纯数据模式
COMPATIBLE_MODE 兼容模式(0), 0: 不做兼容 1: 兼容DB2 2: 兼容MYSQL
PRIORITY_ENCLOSE DB2模式下, enclose优先级最高
HELP 打印帮助信息
2、DMFLDR使用测试
2.1使用 DATA参数指定数据文件
也可以使用 DATA 参数指定 dmfldr 的数据文件,数据文件路径的优先选择顺序为先控制文件,后参数选项。如果控制文件中数据文件路径指定为‘’,在命令行通过 DATA参数指定数据文件路径,DATA 所指定的文件路径会替换‘’。
2.1.1创建表
[dmdba@lei2 ~]$ disql lei/leileilei服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 3.368(ms)
disql V8SQL> CREATE TABLE fldr(C1 INT,C2 INT,C3 DATE);
操作已执行
已用时间: 7.889(毫秒). 执行号:1001.
2.1.2创建数据文件
创建数据文件/home/dmdba/fldr.txt。
[dmdba@lei2 ~]$ vi /home/dmdba/fldr.txt
添加:
1 1|2022-09-06
2 2|2023-09-06
3 3|2024-09-06
2.1.3创建控制文件
创建控制文件/home/dmdba/fldr.ctl
[dmdba@lei2 ~]$ vi /home/dmdba/fldr.ctl
添加:
LOAD DATA
INFILE *
INTO TABLE lei.fldr
FIELDS '|'
(
C1 TERMINATED BY ' ',
C2,
C3 DATE FORMAT 'yyyy-mm-dd'
)
2.1.4dmfldr导入数据
[dmdba@lei2 ~]$ dmfldr userid=SYSDBA/SYSDBA@192.168.0.2:5236 control=\'/home/dmdba/fldr.ctl\' data=\'/home/dmdba/fldr.txt\'
dmfldr V8
控制文件:加载行数:全部每次提交服务器行数:50000跳过行数:0允许错误数:100是否直接加载:Yes是否插入自增列:No数据是否已按照聚集索引排序:No字符集:UTF-8数据文件共1个:
/home/dmdba/fldr.txt错误文件:fldr.bad目标表:LEI.FLDR列名 包装数据类型 终止
C1 CHARACTER WHT
C2 CHARACTER |
C3 yyyy-mm-dd |行缓冲区数量: 2
任务线程数量: 13行记录已提交目标表:LEI.FLDR
load success.
3 行加载成功。
0 行由于数据错误没有加载。
0 行由于数据格式错误被丢弃。跳过的逻辑记录总数:0
读取的逻辑记录总数:3
拒绝的逻辑记录总数:02.059(ms)已使用SQL> select * from fldr;行号 C1 C2 C3
---------- ----------- ----------- ----------
1 1 1 2022-09-06
2 2 2 2023-09-06
3 3 3 2024-09-06已用时间: 1.026(毫秒). 执行号:1002.
2.2数据转换与错误数据文件
2.2.1创建表
[dmdba@lei2 ~]$ disql lei/leileilei服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 3.368(ms)
disql V8SQL> CREATE TABLE fldr2(C1 INT,C2 INT,C3 DATE);
操作已执行
已用时间: 7.889(毫秒). 执行号:1003.
2.2.2创建数据文件
创建数据文件/home/dmdba/fldr2.txt。
[dmdba@lei2 ~]$ vi /home/dmdba/fldr2.txt
添加:
1 1|2022-09-06
2 2|2023-09-06
3 3|2024-09-06
44|aaaa-bbb-ccc
2.2.3创建控制文件
创建控制文件/home/dmdba/fldr2.ctl
[dmdba@lei2 ~]$ vi /home/dmdba/fldr2.ctl
添加:
LOAD DATA
INFILE '/home/dmdba/fldr2.txt'
INTO TABLE lei.fldr2
FIELDS '|'
(
C1 TERMINATED BY ' ',
C2,
C3 DATE FORMAT 'yyyy-mm-dd'
)
2.2.4dmfldr导入数据
[dmdba@lei2 ~]$ dmfldr userid=SYSDBA/SYSDBA@192.168.0.2:5236 control=\'/home/dmdba/fldr2.ctl\' badfile=\'/home/dmdba/fldr2.bad\'
dmfldr V8
控制文件:加载行数:全部每次提交服务器行数:50000跳过行数:0允许错误数:100是否直接加载:Yes是否插入自增列:No数据是否已按照聚集索引排序:No字符集:UTF-8数据文件共1个:
/home/dmdba/fldr2.txt错误文件:/home/dmdba/fldr2.bad目标表:LEI.FLDR2列名 包装数据类型 终止
C1 CHARACTER WHT
C2 CHARACTER |
C3 yyyy-mm-dd |行缓冲区数量: 2
任务线程数量: 1数据错误
3行记录已提交目标表:LEI.FLDR2
load success.
失败原因: 数据错误
3 行加载成功。
1 行由于数据错误没有加载。
1 行由于数据格式错误被丢弃。跳过的逻辑记录总数:0
读取的逻辑记录总数:4
拒绝的逻辑记录总数:11.172(ms)已使用SQL> select * from fldr2;行号 C1 C2 C3
---------- ----------- ----------- ----------
1 1 1 2022-09-06
2 2 2 2023-09-06
3 3 3 2024-09-06已用时间: 0.282(毫秒). 执行号:1005.[dmdba@lei2 ~]$ cat fldr2.bad
dmfldr: 2024-09-05 10:22:10 LEI->FLDR2 DMFLDR BAD FILEdmfldr: 2024-09-05 10:22:10 LEI->FLDR2 44|aaaa-bbb-ccc
2.3大字段数据导出
当 dmfldr 工作在导出模式即 MODE 为 OUT 时,dmfldr 生成大字段对应的数据文件名由 LOB_FILE_NAME 指定,若未指定默认为 dmfldr.lob,文件存放于LOB_DIRECTORY 指定的目录,如果未指定 LOB_DIRECTORY 则存放于指定的导出数据文件同一目录。
2.3.1创建表
[dmdba@lei2 ~]$ disql lei/leileilei服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 3.368(ms)
disql V8SQL> CREATE TABLE fldr3(C1 INT,C2 BLOB,C3 CLOB);
操作已执行
已用时间: 7.889(毫秒). 执行号:1006.SQL> INSERT INTO lei.fldr3 VALUES(1,0XAB121032DE,'abcdefg');
影响行数 1已用时间: 0.893(毫秒). 执行号:1007.
SQL> INSERT INTO lei.fldr3 VALUES(2,0XAB121032DE,'hijklmn');
影响行数 1已用时间: 0.393(毫秒). 执行号:1008.
SQL> INSERT INTO lei.fldr3 VALUES(3,0XAB121032DE,'opqrstu');
影响行数 1已用时间: 0.600(毫秒). 执行号:1009.
SQL> commit;
操作已执行
已用时间: 0.650(毫秒). 执行号:1010.
SQL> select * from fldr3;行号 C1 C2 C3
---------- ----------- ------------ -------
1 1 0xAB121032DE abcdefg
2 2 0xAB121032DE hijklmn
3 3 0xAB121032DE opqrstu已用时间: 0.674(毫秒). 执行号:1011.
2.3.2创建控制文件
创建控制文件/home/dmdba/fldr3.ctl
[dmdba@lei2 ~]$ vi /home/dmdba/fldr3.ctl
添加:
LOAD DATA
INFILE '/home/dmdba/fldr3.txt'
INTO TABLE lei.fldr3
FIELDS '|'
(
C1,
C2,
C3
)
2.3.3dmfldr导出数据
[dmdba@lei2 ~]$ dmfldr userid=SYSDBA/SYSDBA@192.168.0.2:5236 control=\'/home/dmdba/fldr3.ctl\' LOB_DIRECTORY=\'/home/dmdba/\' mode=\'out\'
dmfldr V8
3 rows is load out
export success.
3 行数据已导出
用时:1.565(ms)[dmdba@lei2 ~]$ cat fldr3.txt
1|dmfldr.lob:0:5|dmfldr.lob:5:7
2|dmfldr.lob:12:5|dmfldr.lob:17:7
3|dmfldr.lob:24:5|dmfldr.lob:29:7
[dmdba@lei2 ~]$ cat dmfldr.lob
defgklmnrstu[dmdba@lei2 ~]$[dmdba@lei2 ~]$ dmfldr userid=SYSDBA/SYSDBA@192.168.0.2:5236 control=\'/home/dmdba/fldr3.ctl\' LOB_DIRECTORY=\'/home/dmdba/\' LOB_FILE_NAME=\'fldr3.lob\' mode=\'out\'
dmfldr V8
3 rows is load out
export success.
3 行数据已导出
用时:0.999(ms)[dmdba@lei2 ~]$ cat fldr3.lob
defgklmnrstu[dmdba@lei2 ~]$
2.4DIRECT为TRUE时大字段数据的载入
2.4.1创建表
[dmdba@lei2 ~]$ disql lei/leileilei服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 3.368(ms)
disql V8SQL> CREATE TABLE fldr4(C1 INT,C2 BLOB,C3 CLOB);
操作已执行
已用时间: 7.889(毫秒). 执行号:1003.
2.4.2创建数据文件
创建数据文件/home/dmdba/fldr4.txt。
[dmdba@lei2 ~]$ vi /home/dmdba/fldr4.txt
添加:
1|testblob.txt:0:10|testclob.txt:0:10
2|testblob.txt:10:20|testclob.txt:10:20
3|testblob.txt:20:30|testclob.txt:20:30
[dmdba@lei2 ~]$ vi testblob.txt
添加:
1|testblobtestblobtestblobtestblob1|testblobtestblobtestblobtestblob1
2|testblobtestblobtestblobtestblob2|testblobtestblobtestblobtestblob2
3|testblobtestblobtestblobtestblob3|testblobtestblobtestblobtestblob3
[dmdba@lei2 ~]$ vi testclob.txt
添加:
1|testclobtestclobtestclobtestclob1|testclobtestclobtestclobtestclob1
2|testclobtestclobtestclobtestclob2|testclobtestclobtestclobtestclob2
3|testclobtestclobtestclobtestclob3|testclobtestclobtestclobtestclob3
2.4.3创建控制文件
创建控制文件/home/dmdba/fldr4.ctl
[dmdba@lei2 ~]$ vi /home/dmdba/fldr4.ctl
添加:
OPTIONS
(
SKIP = 0
DIRECT = TRUE
INDEX_OPTION = 2
)
LOAD DATA
INFILE '/home/dmdba/fldr4.txt'
BADFILE '/home/dmdba/fldr4.bad'
INTO TABLE lei.fldr4
FIELDS '|'
(
C1,
C2,
C3
)
2.4.4dmfldr导入数据
[dmdba@lei2 ~]$ dmfldr userid=SYSDBA/SYSDBA@192.168.0.2:5236 control=\'/home/dmdba/fldr4.ctl\' LOB_DIRECTORY=\'/home/dmdba/\' LOG=\'/home/dmdba/dmfldr_fldr4.log\'
dmfldr V8
控制文件:加载行数:全部每次提交服务器行数:50000跳过行数:0允许错误数:100是否直接加载:Yes是否插入自增列:No数据是否已按照聚集索引排序:No字符集:UTF-8数据文件共1个:
/home/dmdba/fldr4.txt错误文件:/home/dmdba/fldr4.bad目标表:LEI.FLDR4列名 包装数据类型 终止
C1 CHARACTER |
C2 CHARACTER |
C3 CHARACTER |行缓冲区数量: 2
任务线程数量: 13行记录已提交目标表:LEI.FLDR4
load success.
3 行加载成功。
0 行由于数据错误没有加载。
0 行由于数据格式错误被丢弃。跳过的逻辑记录总数:0
读取的逻辑记录总数:3
拒绝的逻辑记录总数:00.940(ms)已使用
SQL> select * from fldr4;行号 C1 C2 C3
---------- ----------- -------------------------------------------------------------- ------------------------------
1 1 0x317C74657374626C6F62 1|testclob
2 2 0x74657374626C6F6274657374626C6F6274657374 testclobtestclobtest
3 3 0x7374626C6F6274657374626C6F62317C74657374626C6F6274657374626C stclobtestclob1|testclobtestcl已用时间: 0.606(毫秒). 执行号:1013.
2.5DIRECT为FALSE时大字段数据的载入
2.5.1创建表
[dmdba@lei2 ~]$ disql lei/leileilei服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 3.368(ms)
disql V8SQL> CREATE TABLE fldr5(C1 INT,C2 BLOB,C3 CLOB);
操作已执行
已用时间: 7.889(毫秒). 执行号:1003.
2.5.2创建数据文件
创建数据文件/home/dmdba/fldr5.txt。
[dmdba@lei2 ~]$ vi /home/dmdba/fldr5.txt
添加:
1|0x12d3c8a7|abcdefg
2|0x12a4cbac|hijlkmn
3|0x22d3c8b3|adefhjd
2.5.3创建控制文件
创建控制文件/home/dmdba/fldr5.ctl
[dmdba@lei2 ~]$ vi /home/dmdba/fldr5.ctl
添加:
OPTIONS
(
SKIP = 0
DIRECT = TRUE
INDEX_OPTION = 2
)
LOAD DATA
INFILE '/home/dmdba/fldr4.txt'
BADFILE '/home/dmdba/fldr4.bad'
INTO TABLE lei.fldr4
FIELDS '|'
(
C1,
C2,
C3
)
2.5.4dmfldr导入数据
[dmdba@lei2 ~]$ dmfldr userid=SYSDBA/SYSDBA@192.168.0.2:5236 control=\'/home/dmdba/fldr5.ctl\' LOG=\'/home/dmdba/dmfldr_fldr5.log\' direct=false blob_type=\'hex_char\'
dmfldr V8
控制文件:加载行数:全部每次提交服务器行数:50000跳过行数:0允许错误数:100是否直接加载:No是否插入自增列:No数据是否已按照聚集索引排序:No字符集:UTF-8数据文件共1个:
/home/dmdba/fldr5.txt错误文件:/home/dmdba/fldr5.bad目标表:LEI.FLDR5列名 包装数据类型 终止
C1 CHARACTER |
C2 CHARACTER |
C3 CHARACTER |3 rows processed.目标表:LEI.FLDR5
load success.
3 行加载成功。
0 行由于数据错误没有加载。
0 行由于数据格式错误被丢弃。跳过的逻辑记录总数:0
读取的逻辑记录总数:3
拒绝的逻辑记录总数:00.766(ms)已使用SQL> select * from fldr5;行号 C1 C2 C3
---------- ----------- ---------- -------
1 1 0x12D3C8A7 abcdefg
2 2 0x12A4CBAC hijlkmn
3 3 0x22D3C8B3 adefhjd已用时间: 0.636(毫秒). 执行号:1015.SQL> truncate table fldr5;
操作已执行
已用时间: 11.350(毫秒). 执行号:1016.[dmdba@lei2 ~]$ dmfldr userid=SYSDBA/SYSDBA@192.168.0.2:5236 control=\'/home/dmdba/fldr5.ctl\' LOG=\'/home/dmdba/dmfldr_fldr5.log\' direct=false blob_type=\'hex\'
dmfldr V8
控制文件:加载行数:全部每次提交服务器行数:50000跳过行数:0允许错误数:100是否直接加载:No是否插入自增列:No数据是否已按照聚集索引排序:No字符集:UTF-8数据文件共1个:
/home/dmdba/fldr5.txt错误文件:/home/dmdba/fldr5.bad目标表:LEI.FLDR5列名 包装数据类型 终止
C1 CHARACTER |
C2 CHARACTER |
C3 CHARACTER |3 rows processed.目标表:LEI.FLDR5
load success.
3 行加载成功。
0 行由于数据错误没有加载。
0 行由于数据格式错误被丢弃。跳过的逻辑记录总数:0
读取的逻辑记录总数:3
拒绝的逻辑记录总数:00.578(ms)已使用SQL> select * from fldr5;行号 C1 C2 C3
---------- ----------- ---------------------- -------
1 1 0x30783132643363386137 abcdefg
2 2 0x30783132613463626163 hijlkmn
3 3 0x30783232643363386233 adefhjd已用时间: 0.332(毫秒). 执行号:1017.
2.6自增列装载
1.当 DIRECT 参数为 FALSE 时, dmfldr 将把从数据文件中读取的自增列值作为目标值插入数据库表中,用户应当保证每一行的自增列的值符合自增列的规则,否则将造成数据混乱。
2.当 DIRECT 参数为 TRUE 时, dmfldr 提供了 SET_IDENTITY 参数(默认为 FALSE)对数据载入时自增列的处理进行设置:
① 如果指定 SET_IDENTITY 选项值为 TRUE,则 dmfldr 将把从数据文件中读取的自增列值作为目标值插入数据库表中,用户应当保证每一行的自增列的值符合自增列的规则,否则将造成数据混乱;
② 如果 SET_IDENTITY 选项值设置为 FALSE,则 dmfldr 将忽略数据文件中对应自增列的值,服务器将根据自增列定义和表中已有数据自动生成自增列的值插入每一行的对应列。
2.6.1创建表
[dmdba@lei2 ~]$ disql lei/leileilei服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 3.368(ms)
disql V8SQL> CREATE TABLE fldr6(C1 INT IDENTITY(1,1),C2 VARCHAR);
操作已执行
已用时间: 2.010(毫秒). 执行号:1018.
SQL> INSERT INTO fldr6(C2) VALUES('a');
影响行数 1已用时间: 0.734(毫秒). 执行号:1019.
SQL> INSERT INTO fldr6(C2) VALUES('b');
影响行数 1已用时间: 0.464(毫秒). 执行号:1020.
SQL> COMMIT;
操作已执行
已用时间: 0.679(毫秒). 执行号:1021.
SQL> select * from fldr6;行号 C1 C2
---------- ----------- --
1 1 a
2 2 b已用时间: 0.625(毫秒). 执行号:1022.
2.6.2创建数据文件
创建数据文件/home/dmdba/fldr6.txt。
[dmdba@lei2 ~]$ vi /home/dmdba/fldr6.txt
添加:
2|c
3|d
4|e
2.6.3创建控制文件
创建控制文件/home/dmdba/fldr6.ctl
[dmdba@lei2 ~]$ vi /home/dmdba/fldr6.ctl
添加:
OPTIONS
(
SKIP = 0
ROWS = 50000
INDEX_OPTION = 2
DIRECT=TRUE
SET_IDENTITY=FALSE
)
LOAD DATA
INFILE '/home/dmdba/fldr6.txt'
BADFILE '/home/dmdba/fldr6.bad'
INTO TABLE lei.fldr6
FIELDS '|'
(C1,
C2
)
2.6.4dmfldr导入数据
[dmdba@lei2 ~]$ dmfldr userid=SYSDBA/SYSDBA@192.168.0.2:5236 control=\'/home/dmdba/fldr6.ctl\' LOG=\'/home/dmdba/dmfldr_fldr6.log\'
dmfldr V8
控制文件:加载行数:全部每次提交服务器行数:50000跳过行数:0允许错误数:100是否直接加载:Yes是否插入自增列:No数据是否已按照聚集索引排序:No字符集:UTF-8数据文件共1个:
/home/dmdba/fldr6.txt错误文件:/home/dmdba/fldr6.bad目标表:LEI.FLDR6列名 包装数据类型 终止
C1 CHARACTER |
C2 CHARACTER |行缓冲区数量: 2
任务线程数量: 13行记录已提交目标表:LEI.FLDR6
load success.
3 行加载成功。
0 行由于数据错误没有加载。
0 行由于数据格式错误被丢弃。跳过的逻辑记录总数:0
读取的逻辑记录总数:3
拒绝的逻辑记录总数:00.950(ms)已使用SQL> select * from fldr6;行号 C1 C2
---------- ----------- --
1 1 a
2 2 b
3 3 c
4 4 d
5 5 e已用时间: 0.288(毫秒). 执行号:1023.SQL> delete from fldr6 where c1>2;
影响行数 3已用时间: 0.822(毫秒). 执行号:1024.
SQL> commit;
操作已执行
已用时间: 0.676(毫秒). 执行号:1025.
SQL> select * from fldr6;行号 C1 C2
---------- ----------- --
1 1 a
2 2 b已用时间: 0.282(毫秒). 执行号:1026.[dmdba@lei2 ~]$ dmfldr userid=SYSDBA/SYSDBA@192.168.0.2:5236 control=\'/home/dmdba/fldr6.ctl\' LOG=\'/home/dmdba/dmfldr_fldr6_01.log\' DIRECT=TRUE SET_IDENTITY=TRUE
dmfldr V8
控制文件:加载行数:全部每次提交服务器行数:50000跳过行数:0允许错误数:100是否直接加载:Yes是否插入自增列:Yes数据是否已按照聚集索引排序:No字符集:UTF-8数据文件共1个:
/home/dmdba/fldr6.txt错误文件:/home/dmdba/fldr6.bad目标表:LEI.FLDR6列名 包装数据类型 终止
C1 CHARACTER |
C2 CHARACTER |行缓冲区数量: 2
任务线程数量: 13行记录已提交目标表:LEI.FLDR6
load success.
3 行加载成功。
0 行由于数据错误没有加载。
0 行由于数据格式错误被丢弃。跳过的逻辑记录总数:0
读取的逻辑记录总数:3
拒绝的逻辑记录总数:00.891(ms)已使用SQL> select * from fldr6;行号 C1 C2
---------- ----------- --
1 1 a
2 2 b
3 2 c
4 3 d
5 4 e已用时间: 0.296(毫秒). 执行号:1027.
更多内容请参考:https://eco.dameng.com
相关文章:
DMFLDR数据载入使用实践
1、DMFLDR概述 1.1DMFLDR功能介绍 dmfldr(DM Fast Loader)是 DM 提供的快速数据装载命令行工具。用户通过使用 dmfldr 工具能够把按照一定格式 排序的文本数据以简单、快速、高效的方式载入到 DM 数据库中,或把 DM 数据库中的数据按照一定格…...
发布 NPM 包时,终端显示发布成功但实际上版本并没有更新,可能是由于以下原因
如果发布仍然没有生效,可以检查以下几点: 版本号是否更新: 如果版本号没有更新,NPM 会拒绝发布新的包版本。运行以下命令以确保版本号增加了: bash 复制代码 npm version patch # 更新小版本号 正确的 NPM 注册表&a…...
Java学习Day57:碧水金睛兽!(Spring Cloud微服务1.0)
1.微服务入门 (1).单体架构与分布式架构 单体架构: 将业务的所有功能集中在一个项目中开发,打成一个包部署优点: 架构简单、部署成本低 ; 缺点: 耦合度高项目打包部署到Tomcat,用户直接访问。用户量增加后…...
物联网开发教程专栏介绍与专栏说明——列表目录查阅(持续更新)
阿齐Archie《物联网开发:完整实现单片机通信模组云服务器智能应用软件》专栏 为方便查阅学习本专栏,特整理专栏介绍与专栏说明 一、专栏介绍 物联网开发教程专栏目前有P1和P2系列,P1系列为《手把手完整实现STM32ESP8266MQTT阿里云APP应用》…...
uni-app实现app展示进度条在线更新以及定时更新提醒
需求:需要在app启动后进行检查更新,如果有更新就提示更新,可以点击确定更新或者暂时不更新,如果不更新,就将当前的时间进行缓存,并且再次进入时进行对比,只要超过一天时间就继续提醒检查更新 第…...
【Linux】进程间通信(命名管道、共享内存、消息队列、信号量)
作者主页: 作者主页 本篇博客专栏:Linux 创作时间 :2024年11月2日 命名管道: 如果我们想在不相关的进程之间交换数据,可以使用FIFO文件来做这项工作,它经常被称为命名管道。命名管道是一种特殊类型的文…...
[Android]从FLAG_SECURE禁止截屏看surface
在应用中,设置activity的flag为FLAG_SECURE就可以禁止截屏,截屏出来是黑色的, 试验一下, 注意事项 影响: 设置 FLAG_SECURE 标志后,用户将无法对该Activity进行截屏或录制屏幕。这个标志会影响所有屏幕录…...
python 五子棋小游戏
1. 实现效果 Python五子棋小游戏 2. 游戏规则 规则说明,五子棋人机对战游戏规则如下: Ⅰ 默认规则 - 五子棋规则 对局双方:各执一色棋子,一方持黑色棋子,另一方持白色棋子。棋盘与开局:空棋盘开局…...
JeecgBoot集成工作流实战教程
Activiti是一个轻量级的工作流程和业务流程管理(BPM)平台,它主要面向业务人员、开发人员和系统管理员。这个平台的核心是一个快速且可靠的Java BPMN 2流程引擎。Activiti是开源的,并且基于Apache许可证进行分发。它可以运行在任何…...
第三十章 章节练习商品列表组件封装
目录 一、需求说明 二、技术要点 三、完整代码 3.1. main.js 3.2. App.vue 3.3. MyTable.vue 3.4. MyTag.vue 一、需求说明 1. my-tag 标签组件封装 (1) 双击显示输入框,输入框获取焦点 (2) 失去焦点,隐藏输入框 (3) 回显标签信息 (4) 内…...
NumPy 高级索引
NumPy 高级索引 NumPy 是 Python 中用于科学计算的核心库之一,它提供了一个强大的N维数组对象和许多用于操作这些数组的函数。在 NumPy 中,除了基本的索引和切片操作外,还提供了高级索引功能,这使得您可以以更加灵活和高效的方式访问和操作数组中的数据。本文将详细介绍 N…...
C/C++常用编译工具链:GCC,Clang
目录 GNU Compiler Collection GCC的优势 编译产生的中间文件 Clang Clang的特点 什么是LLVM? Clang编译过程中产生的中间表示文件 关于Clang的调试 C 编译工具链中有几个主要的编译工具,包括: GNU Compiler Collection (GCC…...
let和war的区别
let和war的区别 看不懂图片,可以看视频教程...
[CUDA] stream使用笔记
文章目录 1. stream一般用法2. stream与event:3. stream异常的排查4. stream的异步与同步行为 1. stream一般用法 cudaStream_t stream_; cudaStreamCreate(&stream_); // create stream // some operators running on this stream_ cudaStreamSynchronize(str…...
第二课:开发工具
在本课中,我们将介绍一些常用的C开发工具,并附上下载链接,帮助你选择合适的工具进行开发。 1. DEVC DEVC 是一个轻量级的C开发工具,适合初学者使用。它提供了基本的代码编辑、编译和调试功能。 下载链接: DEVC 下载 2. Visual…...
Vue 学习随笔系列十三 -- ElementUI 表格合并单元格
ElementUI 表格合并单元格 文章目录 ElementUI 表格合并单元格[TOC](文章目录)一、表头合并二、单元格合并1、示例代码2、示例效果 一、表头合并 参考: https://www.jianshu.com/p/2befeb356a31 二、单元格合并 1、示例代码 <template><div><el-…...
对于一个含有直流和交流分量的信号,如何使用示波器正确显示并测出直流电压值和交流电压峰峰值?
对于一个含有直流(DC)和交流(AC)分量的混合信号,使用示波器来正确显示和测量其直流电压值和交流电压峰峰值需要选择适当的设置和方法。以下是详细的步骤: 所需设备 示波器电压探头 步骤一:连…...
移动混合开发面试题及参考答案
目录 什么是混合开发(Hybrid App)? 混合开发(Hybrid App)与原生开发相比有什么优缺点? 优点 缺点 混合开发(Hybrid App)的兴起原因是什么? 市场竞争和成本控制需求 技术发展和资源整合 人才资源的考量 Web App、Native App 和混合开发(Hybrid App)的区别是…...
命令行工具开发秘籍:从零开始创建实用Python脚本(如何创建Python命令行工具)
文章目录 📖 介绍 📖🏡 演示环境 🏡📒 文章内容 📒📝 创建命令行工具的基础🔖 在非模块化的环境中🔖 在模块化环境中📝 打包和安装模块📝 使用命令行工具⚓️ 相关链接 ⚓️📖 介绍 📖 如何将自己的Python模块打包成一个可在命令行中直接执行的工具?…...
Python - PDF 分割成单页、PDF 转图片(PNG)
文章目录 PDF 分割成一页页的 PDFPDF 转 PNGPDF 分割成一页页的 PDF import fitz def split_pdf(pdf_path, save_dir):source_pdf = fitz.open(pdf_path)# 遍历source_pdf中的每一页,page_number从0开始计数 for idx...
抖音增长新引擎:品融电商,一站式全案代运营领跑者
抖音增长新引擎:品融电商,一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中,品牌如何破浪前行?自建团队成本高、效果难控;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...
剑指offer20_链表中环的入口节点
链表中环的入口节点 给定一个链表,若其中包含环,则输出环的入口节点。 若其中不包含环,则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...
oracle与MySQL数据库之间数据同步的技术要点
Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异,它们的数据同步要求既要保持数据的准确性和一致性,又要处理好性能问题。以下是一些主要的技术要点: 数据结构差异 数据类型差异ÿ…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序
一、开发环境准备 工具安装: 下载安装DevEco Studio 4.0(支持HarmonyOS 5)配置HarmonyOS SDK 5.0确保Node.js版本≥14 项目初始化: ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...
Linux云原生安全:零信任架构与机密计算
Linux云原生安全:零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言:云原生安全的范式革命 随着云原生技术的普及,安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测,到2025年,零信任架构将成为超…...
三体问题详解
从物理学角度,三体问题之所以不稳定,是因为三个天体在万有引力作用下相互作用,形成一个非线性耦合系统。我们可以从牛顿经典力学出发,列出具体的运动方程,并说明为何这个系统本质上是混沌的,无法得到一般解…...
Python如何给视频添加音频和字幕
在Python中,给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加,包括必要的代码示例和详细解释。 环境准备 在开始之前,需要安装以下Python库:…...
React---day11
14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store: 我们在使用异步的时候理应是要使用中间件的,但是configureStore 已经自动集成了 redux-thunk,注意action里面要返回函数 import { configureS…...
Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)
Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习) 一、Aspose.PDF 简介二、说明(⚠️仅供学习与研究使用)三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...
A2A JS SDK 完整教程:快速入门指南
目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库ÿ…...
