SQLLDR 文件路径参数

SQLLDR file path argument

我有30多个文件要加载数据。 这些文件中的路径在每个 运行 处更改。所以路径变成

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

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

有什么方法可以在变量中传递文件路径,或者设置任何环境。多变的? 这样控制文件就不用每次都编辑了

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

DATA specifies the name of the data file containing the data to be loaded. If you do not specify a file extension or file type, then the default is .dat.

If you specify a data file on the command line and also specify data files in the control file with INFILE, then the data specified on the command line is processed first. The first data file specified in the control file is ignored. All other data files specified in the control file are processed.

所以在每次调用时传递相关的文件名,例如

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

如果您有很多文件要从一个目录加载,您可以使用一个 shell 脚本来遍历目录内容并将每个文件名依次传递给 SQL*Loader 会话。