让我们假设以下场景: 我有几个用户准备.csv文件(彼此不了解所以可以实现并发)。 .csv文件将始终采用相同的格式。 .csv文件中的数据将包含一个id列表以及一些其他列,如update_date。 根据该数据,我将创建一个程序,用于更新真实数据库表中的数据。
我的想法是使用外部表格,最大限度地简化.csv创建者,因此他们会将文件放在一个文件夹中,并为他们完成工作,休息是我的工作。
问题是:
我可以将多个文件作为1个外部表的源,或者每个文件需要1个ext表(我的意思是,只要有新的func调用从csv加载数据,就应该添加它到现有的外部表...所以不是一次加载所有文件)
我可以更新外部表格中的记录/字段。
答案 0 :(得分:3)
外部表基本上允许查询存储在外部文件中的数据。因此,从这一点开始,您无法对其发布更新。 你可以
1)在目录和ALTER表
中添加新文件ALTER TABLE my_ex LOCATION ('file1.csv','file2.csv');
2)您当然可以修改现有文件。外部表没有数据库状态,每个SELECT都会加载数据库中的数据,因此您将始终看到"更新的"状态。
**更新**
尝试修改(例如UPDATE)会导致外部有组织的表不支持ORA-30657操作。 为了能够维护数据库中的状态,必须首先将数据复制到常规表中(CTAS - 从外部表中选择创建表)。