之前我的一遍 blog 写了怎样使用 Toad 这个工具从 excel 或者 csv 文件向数据库导入数据. 其实 Oracle 自己提供了这样一个工具, 叫做 SQL*Loader. 这个工具使用起来没有那么直接, 也比较容易出错, 但是它非常适合导入大数据量的文本. 执行效率非常高, 号称一小时能导入100 G (听说).
这里给出一个简单的例子, 怎么去使用它.
比方说, 有个客户想要从他之前使用的 ERP 软件里面, 把数据导入到 Oracle 的 EBS. 当然他不可能直接表对表的复制过来, 毕竟两个软件的表结构不一样. 那么他就需要把数据导入到 EBS 的接口表里面. 现在他想要把数据导入到 INV 模块的接口表 MTI 里面. 这是他需要两个文件. 一个文件是 .dat 文件, 里面存放的是所有需要导入的数据, 这个文件可能非常大. 另一个是控制文件, .ctl 文件, 里面存放的是导入法则. 当这两个文件都准备好了, 运行下面的命令:
sqlldr apps/apps control=***.ctl data=***.dat
sqlldr 命令就是调用 SQL*Loader 的实用程序, 它会根据 .ctl 控制文件定义的规则有选择的导入 .dat 文件中的数据.
数据文件可能是这样的:
INVENTORY_RECEIPT_IFD DCS INV-RCV 0000000000003791368058627 WN OA133-1-141113 OA133-1-141113 WLN AVAILABLE 0000000018