dmfldr的全称是DM Fast Loader,是DM7提供的快速数据装载工具,能够简单、快速、高效地把按一定格式排列的文本数据装载到DM数据库中,也能将DM7中的数据按一定格式写入文本文件。
要使用dmfldr,必须先创建控制文件(control file),控制文件用来指定导入或导出数据文件的路径、格式以及其他 dmfldr 参数值。
一、载出
1.创建一个控制文件
在/opt/dmfldr/目录下创建控制文件employees.ctl,内容如下:
LOAD DATA
INFILE '/opt/dmfldr/employees.dat'
INTO TABLE DMHR.EMPLOYEE
FIELDS '|'
LOAD DATA:告诉dmfldr程序要做什么(在这个例子中是指定要装载数据)。
INFILE:当载入数据的时候,指定对应控制文件的路径;当载出数据的时候,指定载出的文本数据文件路径。在这里因为是载出,所以指定的是出的文本数据文件路径存放在/opt/dmfldr/employees.dat中。
INTO TABLE:指定要载入或载出的表,这里是DMHR模式下的EMPLOEE表。
FILEDS:载入或载出的数据分隔符,这里是“|”。
2.切换到达梦数据库bin目录
dmfldr执行程序存放在达梦数据库的bin目录下,切换到该目录下,cd /dm7/bin
3.执行装载数据命令
./dmfldr userid=SYSDBA/[email protected]:5238 control=\'/opt/dmfldr/employees.ctl\' mode=\'out\'
userid:用于指定登录数据库的信息,包含用户名、密码、服务器地址、端口号,此参数为必选参数且必须位于参数位置的第一个。
control:控制文件的路径,此参数为必选参数且必须位于参数位置的第二个。
mode:装载模式,MODE 的可选项有 IN、OUT 和OUTORA 三种。
在这里需要注意的是:指定路径的时候用到了'符合,前面必须加转译符合\,不然就会报“控制文件输入参数出错,请确认以符号'作为首尾字符”的错误:
4.导出完成
二、载入
刚才讲了数据载出,现在我们来讲解数据载入。
1.创建表
刚才我们是从DMHR模式载出EMPLOYEE表的数据,现在我们把这个数据再载入SYSDBA的EMPLOYEE表里面,首先在SYSDBA模式下创建EMPLOYEE表:
CREATE TABLE SYSDBA.EMPLOYEE
(
EMPLOYEE_ID INT NOT NULL,
EMPLOYEE_NAME VARCHAR(20),
IDENTITY_CARD VARCHAR(18),
EMAIL VARCHAR(50) NOT NULL,
PHONE_NUM VARCHAR(20),
HIRE_DATE DATE NOT NULL,
JOB_ID VARCHAR(10) NOT NULL,
SALARY INT,
COMMISSION_PCT INT,
MANAGER_ID INT,
DEPARTMENT_ID INT) ;
2.创建控制文件
LOAD DATA
INFILE '/opt/dmfldr/employees.dat'
INTO TABLE SYSDBA.EMPLOYEE
FIELDS '|'
3.执行载入语句
./dmfldr userid=SYSDBA/[email protected]:5238 control=\'/opt/dmfldr/employees_in.ctl\' mode=\'in\'
这样,数据就成功地载入到SYSDBA模式下地EMPLOYEE表中了。