我们在 Oracle 11g 第 2 版中使用 ORACLE_LOADER 类型的外部表将数据从 CSV 文件导入到表中。外部表为 LOCATION 值设置了一个虚拟文件名,因为在运行包时用户将输入正确的文件名作为参数。然后,包代码将通过 ALTER 语句设置位置。
只有一个包 - 没有别的 - 使用外部表,并且该包只是偶尔运行 - 例如每周一次。但是,外部表的日志文件大约每 4 小时更新一次,表示找不到虚拟文件(当然,它不会找到):
LOG file opened at 05/10/13 22:00:12
KUP-04040: file Dummy_Input_csv.csv in DIR_EXTDIR not found
LOG file opened at 05/11/13 06:00:13
KUP-04040: file Dummy_Input_csv.csv in DIR_EXTDIR not found
LOG file opened at 05/11/13 10:05:07
KUP-04040: file Dummy_Input_csv.csv in DIR_EXTDIR not found
从我看到的有关管理和使用外部表的 Oracle 文档中,我认为只有在通过 select 语句实际使用外部表来检索其数据时,才会更新外部表的日志文件。
除了实际的 SELECT 之外,还有什么可能导致外部表去寻找它的 LOCATION 文件?