可以通过 sqlldr 命令将变量传递给 SQL*Loader 控制文件吗?

aru*_*l.k 5 oracle controlfile sql-loader

下面是我的控制文件示例:

    OPTIONS (skip=1,errors=1000,direct=true,rows=10000)
    load data 
    append
    into table TABLE_NAME
    fields terminated by ','
    OPTIONALLY ENCLOSED BY '"'
    trailing nullcols(
      DATE_ID       DATE_ID_VALUE,
      DESC1         char(1000),
      DESC2         char(1000),
      DISP_URL      char(1000),
      DEST_URL      char(1000),
      ACCT_ID       ACCOUNTID_VALUE,
      Acct_num      ACCOUNT_NUM,
      created_date SYSDATE
    )
Run Code Online (Sandbox Code Playgroud)

我需要从 sqlldr 命令传递 DATE_ID_VALUE、ACCOUNTID、ACCOUNTNUM 值。我通过 csv 文件传递​​ remaming 列数据,该文件又是从 sqlldr "DATA" 参数传递的。有没有办法通过 sqlldr 命令或任何其他方式传递其他必需的参数?

下面是我的 sqlldr 命令:

   sqlldr userid=abc/abcdef@abcdefgh CONTROL= cont.ctl DATA= $csvFilePath  LOG=admaster.log BAD=admaster.bad
Run Code Online (Sandbox Code Playgroud)

Gar*_*y_W 1

我知道这已经很旧了,但我只是偶然发现它,并且最近回答了类似的问题。请参阅我的回复,了解从包装程序创建控制文件的技术。

将 INFILE 的时间戳插入 SQLLOADER 中的列中