负载数据 INFILE'/XXINSTANCEXX/applmgr/CUSTOM/xbol/12.0.0/bin/XX_DATA.csv'
替换表XX_STAGING_TABLE
FIELDS终止于“,”
这是我的并发程序中使用的CTL的一部分。我需要在每次运行时更新INFILE。我将知道路径,但我需要将此示例XX_DATA.csv中的文件名更改为其他内容。
让我们假设我们将要获得一个特定的CSV文件模式。因此,如果文件于2015年4月9日到达,它将被命名为NEWFILE09042015,第二天到达的文件将具有NEWFILE10042015的文件名,即NEWFILE11042015之后的一天,依此类推。因此,我们有效地了解了我们将获得的文件名,但需要找到一种方法,以便我可以在我的CTL文件中更新它。
我怎样才能做到这一点?
答案 0 :(得分:1)
您需要通过DATA选项在命令行上指定文件名。您很可能需要一个使用正确文件名调用sqlldr的包装器脚本。
请参阅此回复,了解可能适合您情况的其他一些替代方案:insert timestanp of INFILE into a column from SQLLOADER
答案 1 :(得分:0)
您可以在INFILE指定的文件名中使用一个或多个导出的系统变量(至少在Unix中)。
您所要做的就是在INFILE指定的文件路径周围使用双引号而不是单引号。
E.g:
LOAD DATA INFILE "/XXINSTANCEXX/applmgr/CUSTOM/xbol/12.0.0/bin/$FILENAME.csv"