动态填充外部表位置

时间:2015-03-16 15:05:30

标签: sql oracle plsql

我正在尝试使用oracle外部表将平面文件加载到数据库中,但我对location子句有点问题。我们收到的文件附有几条信息,包括日期,所以我希望在location子句中使用通配符,但它看起来不像我能够。

我认为我是正确的假设我无法使用通配符,是否有人建议如何在不为每个外部表写入大量代码的情况下完成此操作?

当前的想法:

我现在想到的唯一方法就是拥有一个shell观察程序脚本和参数表。用户可以指定:输入目录,文件掩码,外部表等。然后,当在目录中找到文件时,shell脚本会生成一个使用文件掩码找到的文件列表。对于找到的每个文件,发出一个alter table命令,将给定外部表上的位置更改为该文件,并启动与该文件关联的其余pl / sql。对于使用文件掩码找到的每个文件,可以重复此操作。我想这样做的好处是我还可以在每次运行后将日期添加到日志末尾和坏文件中。

1 个答案:

答案 0 :(得分:1)

我会发布我最终使用的解决方案,这似乎是唯一的方法。

我有一个文件监视器,而不是查找给定输入目录中具有特定文件掩码的文件。查找表还包括外部表的名称。然后,我只需在外部表上发布一个带有新文件名列表的alter table。

对我而言,这不是一个大问题,因为我已经在大多数文件观看和文件操作中使用shell。希望这可以节省寻找解决方案年龄的人。