我可以使用 oracle sql loader 更新列吗?

Can I use oracle sql loader to update a column?

我在 table 中有数据(3 列,其中 2 列已有数据)。我有一个包含三个字段的文本文件。现在,我可以使用 sql 加载程序使用文本文件中第三个字段中的值更新 table 中的第三列吗?

我知道的完成这项工作的唯一两种方法是:

  1. 使用外部 table,这允许将文件视为可以查询的 table,并且可以用作更新语句的一部分。出色的性能和灵活性!
  2. 使用 SQL*Loader 插入一个视图,针对该视图定义了一个执行更新语句的 "INSTEAD OF INSERT" 触发器。这意味着执行逐行处理,因此它比外部 tables 慢。它不是很优雅,当然需要 PL/SQL,但是可以执行基于 SQL*Loader 插入的任意 SQL 语句。