SinoDB数据库导入导出工具DBLOAD

        DBLOAD是SinoDB数据库导入一。它拥有容错机制,可以用来重复导入数据,保持已有数据不变,只增加新增记录。DBLOAD 可以指定分批提交计录数,从而能有效处理大量数据的导入。它还会将导入失败的数据记录到指定文件中,帮助用户快速定位到有问题的数据。

1. DBLOAD命令语法

使用DBLOAD导入数据的完整命令语法如下:

dbload [-d db_name] [-c cmd_file] [-l log_file] [-e errors] [-n num_rows]
[-i i_skip] [-s] [-p] [-r | -k] [-X]

参数说明
-d指定要加载数据的数据库名称
-c命令文件名称
-l指定日志文件,其中记录不能正确加载的数据
-e导入失败多少记录后退出
-n指定多少条记录执行一次提交
-i从文件第几行开始,默认为第一行记录,可用于跳过数据中的标题部分
-s指定只做语法检查,不进行实际的数据加载
-p失败情况:提交或放弃
-r加载数据时,不对表加排他锁
-k加载数据时,对表加排他锁
-X识别16进制数据

命令文件的语法为:

file ‘file_name’ delimiter ‘delimiter_string’ nfields
insert into table_name [(col1,col2,…) values (f01,f02,…)]

file_name    指定要导入的文件名称,可以为绝对路径和相对路径。
delimiter_string  数据文件使用的列分隔符。
nfields      数据文件中,每行的列数。
table_name   要导入的表的名称。
col1,col2…   表的列名称,多个列用逗号分隔。
f01,f02…    数据文件中的列数据编号,


从01开始编号,多个编号用逗号分隔。

2. DBLOAD使用演示

示例1:使用dbload一次导入多个表数据:

[informix@vm84145 data]$ cat dept_employee.ctl 
file '/home/informix/data/dept.unl' delimiter ',' 2;
insert into t_dept_00;
file '/home/informix/data/unload_03.unl' delimiter '.' 4;
insert into t_employee_00;

[informix@vm84145 data]$ dbload -d testdb -c dept_employee.ctl -l dbload.log
DBLOAD Load Utility           INFORMIX-SQL Version 12.10.FC8
Table t_dept_00 had 3 row(s) loaded into it.
Table t_employee_00 had 5 row(s) loaded into it.

[informix@vm84145 data]$ dbaccess testdb -

Database selected.

> select * from t_dept_00;
   f_deptid f_deptname           
          1 Dev                 
          2 Test                
          3 Market              
3 row(s) retrieved.

> select * from t_employee_00;
f_employeeid    f_deptid f_employeename       f_birthdate 
           1           1 Bill                 01.06.1983
           2           1 John                 25.12.1985
           3           2 Mary                 10.10.1987
           4           3 Kate                 11.11.1989
           5           1 Will Smith           28.02.1981
5 row(s) retrieved.

示例2:使用dbload导入数据文件与表定义格式不一致的数据:

[informix@vm84145 data]$ cat employee.ctl 

file '/home/informix/data/unload_02.unl' delimiter '|' 5;
insert into t_employee_02(f_employeeid, f_employeename, f_deptid, f_birthdate) values(f01, f02, f03, f05);

"employee.ctl" 3L, 166C written
[informix@vm84145 data]$ dbload -d testdb -c employee.ctl -l dbload.log
DBLOAD Load Utility           INFORMIX-SQL Version 12.10.FC8
Table t_employee_02 had 5 row(s) loaded into it.

[informix@vm84145 data]$ echo "select * from t_employee_02;" |dbaccess testdb -
Database selected.

f_employeeid    f_deptid f_employeename       f_birthdate 

           1           1 Bill                 1983-06-01
           2           1 John                 1985-12-25
           3           2 Mary                 1987-10-10
           4           3 Kate                 1989-11-11
           5           1 Will Smith           1981-02-28

5 row(s) retrieved.

更多信息内容请移步星瑞格官方社区,期待大家加入

Sinoregal Tech ForumAsk questions, share solutions, and get to know the Sinoregal community.icon-default.png?t=N7T8https://forum.sinoregal.cn/

  • 10
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值