更新外部表中的数据

时间:2015-07-20 10:42:15

标签: oracle plsql

让我们假设以下场景: 我有几个用户准备.csv文件(彼此不了解所以可以实现并发)。 .csv文件将始终采用相同的格式。 .csv文件中的数据将包含一个id列表以及一些其他列,如update_date。 根据该数据,我将创建一个程序,用于更新真实数据库表中的数据。

我的想法是使用外部表格,最大限度地简化.csv创建者,因此他们会将文件放在一个文件夹中,并为他们完成工作,休息是我的工作。

问题是:

  1. 我可以将多个文件作为1个外部表的源,或者每个文件需要1个ext表(我的意思是,只要有新的func调用从csv加载数据,就应该添加它到现有的外部表...所以不是一次加载所有文件)

  2. 我可以更新外部表格中的记录/字段。

1 个答案:

答案 0 :(得分:3)

外部表基本上允许查询存储在外部文件中的数据。因此,从这一点开始,您无法对其发布更新。 你可以

1)在目录和ALTER

中添加新文件
ALTER TABLE my_ex  LOCATION ('file1.csv','file2.csv');

2)您当然可以修改现有文件。外部表没有数据库状态,每个SELECT都会加载数据库中的数据,因此您将始终看到"更新的"状态。

**更新**

尝试修改(例如UPDATE)会导致外部有组织的表不支持ORA-30657操作。 为了能够维护数据库中的状态,必须首先将数据复制到常规表中(CTAS - 从外部表中选择创建表)。