SQL*加载程序:使用不在 table 中的字段

SQL*Loader: Use a field not in the table

有一个奇怪的问题,我正在尝试使用 SQL*loader 将一些数据加载到 Oracle 中。 诀窍是,提供了一个字段,我需要将其用作用户函数的输入来计算另一个字段。我不想加载的原始字段。

我试过了:但是,不能将 FILLER 字段引用为 BIND 变量:

  LOAD DATA
     APPEND
     INTO TABLE my_table
     (
     XREF_NUM        FILLER   POSITION(8:26),
     ID_NUM                   POSITION(1:1) "my_func(:XREF_NUM)",
     ... other columns ... 
     )

Table 定义就是:

  ID_NUM
  COL1
  COl2

但是 XREF_NUM 在 table 中不存在。

我该如何设置?

将其定义为 BOUNDFILLER,这意味着将其视为 "remembered" FILLER。您可以在表达式中使用它。

LOAD DATA
     APPEND
     INTO TABLE my_table
     (
     XREF_NUM   BOUNDFILLER  POSITION(8:26),
     ID_NUM                  POSITION(1:1) "my_func(:XREF_NUM)",
     ... other columns ... 
     )