SQLLOADER是ORACLE的数据加载工具,通常用来将操作系统文件迁移到ORACLE数据库中。而DMFLDR(DM Fast Loader)是 DM 提供的快速数据装载命令行工具,大多数条件下只需将适用于sqlldr的控制文件部分修改下,即可使用dmfldr命令将sqlldr导出的文件迁移至达梦库内。
以下分享几处工作中遇到的不同点:
dmfldr命令中所有 ‘ 前都需要加 \ 进行转义。如:
sqlldr中bad项在dmfldr内需改写为badfile。如:
#sqlldr执行命令为
#dm执行命令为:
dmfldr字符设置改为在命令中配置character_code参数。sqlldr是在控制文件中,图一为dmfldr配置,图二为sqlldr配置:
如需导入序列需提前在库内创建,再在控制文件内调用。示例:
dmfldr导入指定值需在控制文件中使用constant参数。示例:
create user "TEST" identified by "123456789";
grant "DBA" to "TEST";
create table "TEST"."TEST"
(
"ID" INT,
"NAME" VARCHAR2(50),
"STATE" CHAR(10)
);
vi today.txt
AAAAA
BBBBB
CCCCC
DDDDD
EEEEE
命令:
sqlldr userid=TEST/123456789@127.0.0.1:1521/orcl control=sqlcon.ctl log=today.log readsize=20680000 bindsize=20680000 bad=today.bad data=today.txt errors=1000000
控制文件:
[oracle@RH6 ~]$ vi sqlcon.ctl
LOAD DATA
CHARACTERSET ZHS16GBK
TRUNCATE
INTO TABLE TEST
FIELDS TERMINATED BY '|'
OPTIONALLY ENCLOSED BY '"'
trailing nullcols
(
NAME ,
ID sequence(max,1),
STATE INTEGER "1"
)
命令:
cd /dmsoft/dmdbms/bin
./dmfldr userid=TEST/123456789@127.0.0.1:5236 control=\'/home/dmdba/dmcon.ctl\' log=\'/home/dmdba/today.log\' read_rows=1000000 badfile=\'/home/dmdba/today.bad\' data=\'/home/dmdba/today.txt\' errors=1000000 character_code=\'utf-8\'
控制文件:
[dmdba@XYGLPT-PTYY-SERVER-2 ~]$ vi dmcon.ctl
LOAD DATA
INFILE *
REPLACE
INTO TABLE formmain_8071
FIELDS '|'
OPTIONALLY ENCLOSE BY '"'
trailing nullcols
(
NAME,
ID "SEQ1.NEXTVAL",
STATE constant "1"
)
文章
阅读量
获赞