SQLLDR文件路径参数

时间:2015-10-25 14:25:46

标签: oracle loading sql-loader

我有超过30个文件来加载数据。 这些文件中的每次运行都会更改路径。所以路径变为

INFILE "/home/dmf/Cycle7Data/ITEM_IMAGE.csv"
INFILE "/home/dmf/Cycle8Data/ITEM_IMAGE.csv"

每个控制文件(SUPPLIER.csv)上的文件名都会改变

有没有办法在变量中传递文件路径,或者设置任何环境。变量? 这样每次都不会编辑控制文件

1 个答案:

答案 0 :(得分:1)

您可以在命令行上传递数据文件名; from the documentation

  

DATA指定包含要加载的数据的数据文件的名称。如果未指定文件扩展名或文件类型,则默认为.dat。

     

如果在命令行中指定数据文件并使用INFILE在控制文件中指定数据文件,则首先处理在命令行上指定的数据。将忽略控制文件中指定的第一个数据文件。将处理控制文件中指定的所有其他数据文件。

因此,每次调用都会传递相关的文件名,例如

sqlldr user/passwd control=myfile.ctl data=/home/dmf/Cycle7Data/ITEM_IMAGE.csv

如果要从目录加载大量文件,可以使用shell脚本循环遍历目录内容,并将每个文件名依次传递给SQL * Loader会话。