SQL批量加载器

SQL批量加载器

💡 原文英文,约600词,阅读约需3分钟。
📝

内容提要

批量加载工具用于一次性将数据加载到表中,区别于逐行插入。使用CSV、TXT等格式创建控制文件,执行时可设置条件、跳过行和记录日志,以确保数据有效性。

🎯

关键要点

  • 批量加载工具用于一次性将数据加载到表中,区别于逐行插入。
  • 加载数据时需要注意四个要素:数据、表、加载脚本和执行。
  • 支持的文件格式包括CSV、TXT等,建议使用记事本保存文件。
  • 创建表的示例:create table sample(id number, name varchar2(25), salary number);
  • 加载脚本或控制文件的创建方式相同,需指定文件路径和字段分隔符。
  • 使用sqlldr命令执行加载,direct=true可加快加载速度并绕过约束和触发器。
  • 可以使用FILLER关键字跳过某些列的加载。
  • 加载数据时可设置条件,失败的数据会存储在DISCARD文件中,Oracle错误会记录在BAD文件中。
  • 执行时可设置日志文件、坏文件和丢弃文件的名称。
  • 可以通过skip参数跳过指定行数的数据。
  • 插入数据时,表必须为空,若表中已有数据则会报错,可以使用append或truncate选项。
  • 支持使用不同的分隔符(如#)加载特定列的数据。

延伸问答

什么是批量加载工具,它的主要功能是什么?

批量加载工具用于一次性将数据加载到表中,区别于逐行插入。

使用批量加载工具时需要注意哪些要素?

需要注意的数据、表、加载脚本和执行四个要素。

支持哪些文件格式进行数据加载?

支持的文件格式包括CSV、TXT等。

如何创建加载脚本或控制文件?

加载脚本需指定文件路径和字段分隔符,格式为:load data infile '文件路径' insert into table 表名 fields terminated by ','(字段1, 字段2, ...)。

如何提高批量加载的速度?

可以使用sqlldr命令中的direct=true选项来加快加载速度,并绕过约束和触发器。

如果加载数据时遇到错误,如何处理?

失败的数据会存储在DISCARD文件中,Oracle错误会记录在BAD文件中。

➡️

继续阅读