DM 提供了两种形式的快速装载工具:一是 dmfldr;二是 dmldrc 和 dmldrp
dmfldr(DM Fast Loader)包含 dmfldr 客户端和 dmfldr 模块两部分。dmfldr 客户端实现初始化快速装载环境、读取数据、打包数据和发送数据功能。dmfldr 功能模块嵌入在数据库服务器中,实现装载功能。两者相互协作,共同完成 dmfldr 的各项功能。
Dmldrp 轻量级快速装载工具服务器
dmldrc 轻量级快速装载工具客户端
1.由于目的表上可能存在约束等原因,导致某些数据无法插入成功,此时服务器端会将这一批数据全部回滚,并将这批数据全部记为错误数据,但服务器端插入时的错误数据并不会记录到 BADFILE 中。
2.ERRORS=服务器端插入数据记录的错误数据数+客户端数据转换时的错误数据数
3.另外需要注意的是,DMDPC 环境下暂不支持自增列装载。
dmfldr 的使用存在以下一些限制:
不支持向临时表、外部表装载数据
不支持向系统表装载数据
不支持向带有位图索引的表装载数据
不支持向带有函数索引的表装载数据
不支持向带有全文索引的表装载数据
不支持向 DCP 代理装载数据
不支持在 DPC 环境下,向带有全局索引的表装载数据
dmfldr 装载时会对约束进行检查,对各种约束的处理机制如下表所示;由于 dmfldr 不处理约束的有效性,都视为有效,故需要用户自行处理约束有效性等相关内容
表3.1 dmfldr的约束检查机制
约束 数据不满足时 数据插入与否 约束是否有效
非空约束(NOT NULL) 报错 不插入 有效
聚集索引(CLUSTER PRIMARY KEY) 报错 不插入 有效
唯一约束(UNIQUE, PRIMARY KEY) 报错 插入 有效
引用约束(FOREIGN KEY) 不报错 插入 有效
CHECK 约束(CHECK) 不报错 插入 有效
注意
当数据不满足唯一约束时,唯一约束仍有效,但相关联的唯一索引将会失效。
PS D:\dmdbms\bin> .\dmfldr.exe help
version: 03134284132-20231226-213242-20081
格式: dmfldr.exe KEYWORD=value
例程: dmfldr.exe SYSDBA/SYSDBA CONTROL='c:\fldr.ctl'
USERID 必须是命令行中的第一个参数
字符串类型参数必须以引号封闭
关键字 说明(默认值)
--------------------------------------------------------------------------------
USERID 用户名/口令, 格式:{<username>[/<password>] | /}[@<connect_identifier>][<option>] [<os_auth>]
<connect_identifier> : [<svc_name> | host[:port] | <unixsocket_file>]
<option> : #{<exetend_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 读入文件缓冲区的大小 (10),有效值范围1~2048
LOG_SIZE 日志信息缓冲区的大小 (1),有效值范围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数据最大大小(10)MB
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 转义符
DB2_MODE 兼容DB2模式
PRIORITY_ENCLOSE DB2模式下, enclose优先级最高
HELP 打印帮助信息
[OPTIONS(
<id>=<value>
……
)]
LOAD [DATA]
INFILE < <file_option>|<directory_option> >
[BADFILE <path_name>] (错误数据文件路径最终值的优先选择顺序为命令行中指定的参数值,控制文件的 LOAD 节点选项,控制文件的 OPTIONS 选项,dmfldr.ini 配置文件中指定的参数值 BADFILE 仅作用于 dmfldr 的工作 MODE 为 IN 的情况下,MODE 为 OUT 时无效。)
[APPEND|REPLACE|INSERT]
<into_table_clause>
<id> ::=参数
<value> ::=值
<file_option> ::= [LIST] <path_name> [<row_term_option>] [,<path_name>
[<row_term_option>]]
<directory_option> ::= DIRECTORY <path_name> [<row_term_option>]
<path_name> ::=文件地址
<row_term_option> ::=STR [X] <delimiter>
<into_table_clause> ::= <into_table_single>{<into_table_single>}
<into_table_single> ::=INTO TABLE [<schema>.]<tablename>
[EP <ep_option>]
[WHEN <field_conditions>]
[FIELDS [TERMINATED BY] [X] <delimiter>]
[<enclosed_option>]
[TRAILING NULLCOLS]
[<coldef_option>]
<schema> ::=模式名
<tablename> ::=表名
<ep_option> ::=(<ep_list>)
<ep_list> ::=整型数字列表,以逗号分隔
<field_conditions> ::= <field_condition>{ AND <field_condition>}
<field_condition> ::= [(] <cmp_exp><cmp_ops><cmp_data>[)]
<cmp_exp> ::= <colid> | (p1:p2)
<cmp_ops> ::= = | <> | !=
<cmp_data> ::= [X] '<字符串常量>' | BLANKS | WHITESPACE
<delimiter> ::= '<字符串常量>'
<coldef_option> ::= (<col_def>{ ,<col_def>})
<col_def> ::= <col_id> [FILLER][<property_option>][<dtype_option>][<fmt_option>][<term_option>][<enclosed_option>][<constant_option>][<fun_option>]
<col_id> ::= 列名
<property_option> ::= <position_option> | NULL
<position_option> ::= position(p1:p2) | position(p1) | position(*)
<dtype_option> ::= DATE | CHAR
<fmt_option> ::= FORMAT '<日期格式>'
<term_option> ::= TERMINATED [BY] <wx_option>
<wx_option> ::= WHITESPACE|[X] <delimiter>
<enclosed_option> ::= [OPTIONALLY] ENCLOSE [BY] [X] <delimiter>
<constant_option> ::= CONSTANT "<常量>"
<fun_option> ::= "<函数>"
OPTIONS
(
SKIP = 0
ROWS = 50000
DIRECT = TRUE
INDEX_OPTION = 2
)
LOAD DATA
INFILE 'D:\linshi\BONUS.TXT'
INTO TABLE scott.DEPT
FIELDS '|'
(
DEPTNO,
DNAME,
LOC
)
PS D:\dmdbms\bin> .\dmfldr.exe userid=SYSDBA/shuangshuang@dameng CONTROL='''D:/linshi/control_file.txt''' mode='''out'''
dmfldr V8
4 rows is load out
export success.
4 行数据已导出
用时:6.995(ms)
10|ACCOUNTING|NEW YORK
20|RESEARCH|DALLAS
30|SALES|CHICAGO
40|OPERATIONS|BOSTON
OPTIONS
(
SKIP = 0
ROWS = 50000
DIRECT = TRUE
INDEX_OPTION = 2
)
LOAD DATA
INFILE 'D:\linshi\EMP.TXT'
INTO TABLE scott.EMP
FIELDS '|'
(
EMPNO,
ENAME,
JOB,
MGR,
HIREDATE,
SAL,
COMM,
DEPTNO
)
PS D:\dmdbms\bin> .\dmfldr.exe userid=SYSDBA/shuangshuang@dameng CONTROL='''D:/linshi/control_file.txt''' mode='''out'''
dmfldr V8
14 rows is load out
export success.
14 行数据已导出
用时:12.178(ms)
7369|SMITH|CLERK|7902|1980-12-17 00:00:00|800||20
7499|ALLEN|SALESMAN|7698|1981-02-20 00:00:00|1600|300|30
7521|WARD|SALESMAN|7698|1981-02-22 00:00:00|1250|500|30
7566|JONES|MANAGER|7839|1981-04-02 00:00:00|2975||20
7654|MARTIN|SALESMAN|7698|1981-09-28 00:00:00|1250|1400|30
7698|BLAKE|MANAGER|7839|1981-05-01 00:00:00|2850||30
7782|CLARK|MANAGER|7839|1981-06-09 00:00:00|2450||10
7788|SCOTT|ANALYST|7566|1987-04-19 00:00:00|3000||20
7839|KING|PRESIDENT||1981-11-17 00:00:00|5000||10
7844|TURNER|SALESMAN|7698|1981-09-08 00:00:00|1500|0|30
7876|ADAMS|CLERK|7788|1987-05-23 00:00:00|1100||20
7900|JAMES|CLERK|7698|1981-12-03 00:00:00|950||30
7902|FORD|ANALYST|7566|1981-12-03 00:00:00|3000||20
7934|MILLER|CLERK|7782|1982-01-23 00:00:00|1300||10
OPTIONS
(
SKIP = 0
ROWS = 50000
DIRECT = TRUE
INDEX_OPTION = 2
)
LOAD DATA
INFILE 'D:\linshi\SALGRADE.TXT'
INTO TABLE scott.SALGRADE
FIELDS '|'
(
GRADE,
LOSAL,
HISAL
)
PS D:\dmdbms\bin> .\dmfldr.exe userid=SYSDBA/shuangshuang@dameng CONTROL='''D:/linshi/control_file.txt''' mode='''out'''
dmfldr V8
5 rows is load out
export success.
5 行数据已导出
用时:11.465(ms)
1|700|1200
2|1201|1400
3|1401|2000
4|2001|3000
5|3001|9999
OPTIONS
(
SKIP = 0
ROWS = 50000
DIRECT = TRUE
INDEX_OPTION = 2
)
LOAD DATA
INFILE 'D:\linshi\dept.TXT'
BADFILE 'D:\linshi\dept.bad'
INTO TABLE scott.dept
FIELDS '|'
(
DEPTNO,
DNAME,
LOC
)
PS D:\dmdbms\bin> .\dmfldr.exe userid=SYSDBA/shuangshuang@test CONTROL='''D:/linshi/control_file.txt'''
dmfldr V8
控制文件:
加载行数:全部
每次提交服务器行数:50000
跳过行数:0
允许错误数:100
是否直接加载:Yes
是否插入自增列:No
数据是否已按照聚集索引排序:No
字符集:GBK
数据文件共1个:
D:\linshi\dept.TXT
错误文件:D:\linshi\dept.bad
目标表:SCOTT.DEPT
列名 包装数据类型
终止
DEPTNO CHARACTER |
DNAME CHARACTER |
LOC CHARACTER |
行缓冲区数量: 12
任务线程数量: 12
4行记录已提交
目标表:SCOTT.DEPT
load success.
4 行加载成功。
0 行由于数据错误没有加载。
0 行由于数据格式错误被丢弃。
跳过的逻辑记录总数:0
读取的逻辑记录总数:4
拒绝的逻辑记录总数:0
5.788(ms)已使用
OPTIONS
(
SKIP = 0
ROWS = 50000
DIRECT = TRUE
INDEX_OPTION = 2
)
LOAD DATA
INFILE 'D:\linshi\EMP.TXT'
BADFILE 'D:\linshi\emp.bad'
INTO TABLE scott.emp
FIELDS '|'
(
EMPNO,
ENAME,
JOB,
MGR,
HIREDATE DATE FORMAT 'YYYY-MM-DD hh24:mi:ss',
SAL,
COMM,
DEPTNO
)
PS D:\dmdbms\bin> .\dmfldr.exe userid=SYSDBA/shuangshuang@test CONTROL='''D:/linshi/control_file.txt'''
dmfldr V8
控制文件:
加载行数:全部
每次提交服务器行数:50000
跳过行数:0
允许错误数:100
是否直接加载:Yes
是否插入自增列:No
数据是否已按照聚集索引排序:No
字符集:GBK
数据文件共1个:
D:\linshi\EMP.TXT
错误文件:D:\linshi\emp.bad
目标表:SCOTT.EMP
列名 包装数据类型
终止
EMPNO CHARACTER |
ENAME CHARACTER |
JOB CHARACTER |
MGR CHARACTER |
HIREDATE YYYY-MM-DD hh24:mi:ss |
SAL CHARACTER |
COMM CHARACTER |
DEPTNO CHARACTER |
行缓冲区数量: 12
任务线程数量: 12
14行记录已提交
目标表:SCOTT.EMP
load success.
14 行加载成功。
0 行由于数据错误没有加载。
0 行由于数据格式错误被丢弃。
跳过的逻辑记录总数:0
读取的逻辑记录总数:14
拒绝的逻辑记录总数:0
5.259(ms)已使用
OPTIONS
(
SKIP = 0
ROWS = 50000
DIRECT = TRUE
INDEX_OPTION = 2
)
LOAD DATA
INFILE 'D:\linshi\SALGRADE.TXT'
BADFILE 'D:\linshi\SALGRADE.bad'
INTO TABLE scott.SALGRADE
FIELDS '|'
(
GRADE,
LOSAL,
HISAL
)
PS D:\dmdbms\bin> .\dmfldr.exe userid=SYSDBA/shuangshuang@test CONTROL='''D:/linshi/control_file.txt'''
dmfldr V8
控制文件:
加载行数:全部
每次提交服务器行数:50000
跳过行数:0
允许错误数:100
是否直接加载:Yes
是否插入自增列:No
数据是否已按照聚集索引排序:No
字符集:GBK
数据文件共1个:
D:\linshi\SALGRADE.TXT
错误文件:D:\linshi\SALGRADE.bad
目标表:SCOTT.SALGRADE
列名 包装数据类型
终止
GRADE CHARACTER |
LOSAL CHARACTER |
HISAL CHARACTER |
行缓冲区数量: 12
任务线程数量: 12
5行记录已提交
目标表:SCOTT.SALGRADE
load success.
5 行加载成功。
0 行由于数据错误没有加载。
0 行由于数据格式错误被丢弃。
跳过的逻辑记录总数:0
读取的逻辑记录总数:5
拒绝的逻辑记录总数:0
3.114(ms)已使用
PS D:\dmdbms\bin> .\dmldrp.exe help
dmldrp V8
格式: dmldrp.exe KEYWORD=value
例程: dmldrp.exe
关键字 说明
---------------------------------------------------------------------
PORT 端口号(可选项, 默认为8336)
HELP 打印帮助信息
PS D:\dmdbms\bin> .\dmldrp.exe port=6666
dmldrp V8
dmldrp is ready!
PS D:\dmdbms\bin> .\dmldrc.exe help
version: 03134284132-20231226-213242-20081
格式: dmldrc.exe KEYWORD=value
例程: dmldrc.exe SYSDBA/SYSDBA 192.168.0.1:8336
USERID 必须是命令行中的第一个参数
SERVER 必须是命令行中的第二个参数
字符串类型参数必须以引号封闭
关键字 说明(默认值)
--------------------------------------------------------------------------------
USERID 用户名/口令, 格式:{<username>[/<password>] | /}[@<connect_identifier>][<option>] [<os_auth>]
<connect_identifier> : [<svc_name> | host[:port] | <unixsocket_file>]
<option> : #{<exetend_option>=<value>[,<extend_option>=<value>]...}
--此行外层{}是为了封装参数之用,书写时需要保留
<os_auth> : AS {SYSDBA|SYSSSO|SYSAUDITOR|USERS|AUTO}
SERVER dmldrp的IP地址和端口号。不需要指定参数名,直接指定host[:port]
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 读入文件缓冲区的大小 (10),有效值范围1~2048
LOG_SIZE 日志信息缓冲区的大小 (1),有效值范围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 使用自定义查询语句,仅导出模式有效
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数据最大大小(10)MB
LOG_LEVEL 记录错误数据信息级别(3), 0: 不记录 1: 只记录到log文件 2: 只记录到bad文件 3: 记录到log和bad文件
FLDR_INI 配置文件路径,字符串类型
RECONN 自动重连次数(0)
RECONN_TIME 自动重连等待时间(5), 单位(s), 有效值范围(1~10000)
HELP 打印帮助信息
OPTIONS
(
SKIP = 0
ROWS = 50000
DIRECT = TRUE
INDEX_OPTION = 2
)
LOAD DATA
INFILE 'D:\linshi\SALGRADE.TXT'
BADFILE 'D:\linshi\SALGRADE.bad'
INTO TABLE scott.SALGRADE
FIELDS '|'
(
GRADE,
LOSAL,
HISAL
)
PS D:\dmdbms\bin> .\dmldrc.exe userid=SYSDBA/shuangshuang@test 127.0.0.1:6666 CONTROL='''D:/linshi/control_file.txt'''
dmldrc V8
控制文件:
加载行数:全部
每次提交服务器行数:50000
跳过行数:0
允许错误数:100
是否直接加载:Yes
是否插入自增列:No
数据是否已按照聚集索引排序:No
字符集:unknown
数据文件共1个:
D:\linshi\SALGRADE.TXT
send data length:64
目标表:SALGRADE
load success.
5 行加载成功。
0 行由于数据错误没有加载。
0 行由于数据格式错误被丢弃。
跳过的逻辑记录总数:0
读取的逻辑记录总数:5
拒绝的逻辑记录总数:0
4.003(ms)已使用
OPTIONS
(
SKIP = 0
ROWS = 50000
DIRECT = TRUE
INDEX_OPTION = 2
)
LOAD DATA
INFILE 'D:\linshi\EMP.TXT'
BADFILE 'D:\linshi\EMP.bad'
INTO TABLE scott.EMP
FIELDS '|'
(
EMPNO,
ENAME,
JOB,
MGR,
HIREDATE DATE FORMAT 'YYYY-MM-DD hh24:mi:ss',
SAL,
COMM,
DEPTNO
)
PS D:\dmdbms\bin> .\dmldrc.exe userid=SYSDBA/shuangshuang@test 127.0.0.1:6666 CONTROL='''D:/linshi/control_file.txt'''
dmldrc V8
控制文件:
加载行数:全部
每次提交服务器行数:50000
跳过行数:0
允许错误数:100
是否直接加载:Yes
是否插入自增列:No
数据是否已按照聚集索引排序:No
字符集:unknown
数据文件共1个:
D:\linshi\EMP.TXT
send data length:759
目标表:EMP
load success.
14 行加载成功。
0 行由于数据错误没有加载。
0 行由于数据格式错误被丢弃。
跳过的逻辑记录总数:0
读取的逻辑记录总数:14
拒绝的逻辑记录总数:0
4.671(ms)已使用
OPTIONS
(
SKIP = 0
ROWS = 50000
DIRECT = TRUE
INDEX_OPTION = 2
)
LOAD DATA
INFILE 'D:\linshi\dept.TXT'
BADFILE 'D:\linshi\dept.bad'
INTO TABLE scott.dept
FIELDS '|'
(
DEPTNO,
DNAME,
LOC
)
PS D:\dmdbms\bin> .\dmldrc.exe userid=SYSDBA/shuangshuang@test 127.0.0.1:6666 CONTROL='''D:/linshi/control_file.txt'''
dmldrc V8
控制文件:
加载行数:全部
每次提交服务器行数:50000
跳过行数:0
允许错误数:100
是否直接加载:Yes
是否插入自增列:No
数据是否已按照聚集索引排序:No
字符集:unknown
数据文件共1个:
D:\linshi\dept.TXT
send data length:84
目标表:DEPT
load success.
4 行加载成功。
0 行由于数据错误没有加载。
0 行由于数据格式错误被丢弃。
跳过的逻辑记录总数:0
读取的逻辑记录总数:4
拒绝的逻辑记录总数:0
4.002(ms)已使用
OPTIONS
(
SKIP = 0
ROWS = 50000
DIRECT = TRUE
INDEX_OPTION = 2
)
LOAD DATA
INFILE '/opt/data/test1.txt' STR X '0A'
BADFILE '/opt/data/test1.bad'
INTO TABLE test1
FIELDS '|'
(
F1,
F2 DATE FORMAT 'YYYY-MM-DD',
F3 NULL,
F4 TERMINATED BY WHITESPACE ENCLOSE BY '(',
F5 CONSTANT "test",
F6 "trim()"
)
LOAD DATA
INFILE '/opt/data/test2.txt' STR X '0A'
BADFILE '/opt/data/test2.bad'
INTO TABLE test2
FIELDS '|'
(
C1 TERMINATED BY ' ',
C2,
C3 "sysdate",
C4 "substr(:C2,1,2)"
)
DECLARE
CURSOR V_USERS IS
select T.COLUMN_NAME AS USERNAME from SYS.DBA_TAB_COLUMNS t where t.OWNER='SCOTT' AND T.TABLE_NAME='DEPT';
V_RET V_USERS%ROWTYPE;
V_RESULT VARCHAR2(30000);
BEGIN
OPEN V_USERS;
LOOP
V_RESULT := '';
FETCH V_USERS INTO V_RET;
EXIT WHEN V_USERS%NOTFOUND;
V_RESULT := V_RET.USERNAME||',' ;
PRINT(V_RESULT);
END LOOP;
CLOSE V_USERS;
END;
https://eco.dameng.com/
文章
阅读量
获赞