情况
我有一个名为inventory.CSV的CSV文件,位于Oracle数据库服务器(2008 R2 Enterprise Edition Windows server(上。此CSV文件用作Oracle外部表。
每小时,一个计划任务(Windows任务调度程序(都会执行一个.bat文件,该文件复制到更新版本inventory.csv上,覆盖原始版本。
然后,报告应用程序将使用这些数据。
问题
使用inventory.csv中数据的应用程序无法知道数据上次更新的时间。
理想情况下,我希望"最后更新日期"可以作为表中的一列访问。
一种可能的解决方案是在一个单独的文件中触发当前日期/时间的日志记录,然后将其作为外部表进行引用。然而,这个解决方案有太多的活动部件,如果可能的话,我更喜欢更简单的解决方案。
我知道CSV文件本身知道它是什么时候创建的。。。我想知道Oracle外部表是否有任何方法可以从CSV文件属性中读取"创建"日期?
或者还有其他想法吗?
Oracle的哪个版本?
如果您使用的是11.2或更高版本,则可以使用外部表的预处理器功能在加载文件之前在文件上运行shell脚本/批处理文件。我倾向于简单化——让预处理脚本获取日期,将其存储到一个单独的文件中,并有一个单独外部表来加载和公开数据。这可能比将日期添加到每一行更容易。