0

加载数据 文件'/XXINSTANCEXX/applmgr/CUSTOM/xbol/12.0.0/bin/XX_DATA.csv'

替换到表 XX_STAGING_TABLE

以“,”结尾的字段

尾随 NULLCOLS

这是我在并发程序中使用的 CTL 的一部分。我需要在每次运行时更新 INFILE。我会知道路径,但我需要将此示例 XX_DATA.csv 中的文件名更改为其他名称。

让我们假设我们将要获得的 CSV 文件有一个特定的模式。因此,如果文件在 2015 年 4 月 9 日到达,它将被命名为 NEWFILE09042015,第二天到达的文件将具有 NEWFILE10042015 的文件名,在 NEWFILE11042015 之后的一天,依此类推。因此,我们有效地了解我们将获得的文件名,但需要找到一种方法来更新我的 CTL 文件中的文件名。

我怎样才能做到这一点?

4

2 回答 2

1

您需要通过 DATA 选项在命令行上指定文件名。您很可能需要一个使用正确文件名调用 sqlldr 的包装脚本。

有关可能适用于您的情况的其他一些替代方法,请参阅此回复:将 INFILE 的 timestanp 插入 SQLLOADER 的列中

于 2015-04-09T13:56:37.343 回答
1

您可以在 INFILE 指定的文件名中使用一个或多个导出的系统变量(至少在 Unix 中)。

您所要做的就是在 INFILE 指定的文件路径周围使用双引号而不是单引号。

例如:

LOAD DATA INFILE "/XXINSTANCEXX/applmgr/CUSTOM/xbol/12.0.0/bin/$FILENAME.csv"
于 2016-07-15T16:34:28.537 回答