我们在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文件?
答案 0 :(得分:1)
它可能是尝试访问表的预定作业之一,例如自动收集统计信息。查看dba_scheduler_jobs或dba_autotask_client中是否有任何计划在您看到错误时运行的作业。