如何在 sqlldr 输入文件中不存在的 table 中插入值?

How to insert value in table which is not present in input file for sqlldr?

考虑 table 结构如下:

CREATE TABLE TEST_TABLE
(
   FIELD_1             VARCHAR2(15) NOT NULL,
   SYS_CREATION_DATE   DATE         NOT NULL,
   FIELD_2             VARCHAR2(25) NOT NULL,
   FIELD_3             VARCHAR2(25)
)

输入文件:input.txt - 它不包含 SYS_CREATION_DATE 它有 FIELD_1、FIELD_2、FIELD_3

111111111111111,12345,67890

控制文件:control.txt

load data
infile "input.txt"
append
into table TEST_TABLE
fields terminated by ','
trailing nullcols
(
   FIELD_1                    ,
   SYS_CREATION_DATE       "SYSDATE",
   FIELD_2            ,
   FIELD_3
)

现在 运行

sqlldr userid="uid/pass@ins" control="control.txt"   

插入以下条目

-------------------------------------------------------------
| FIELD_1         | SYS_CREATION_DATE   | FIELD_2 | FIELD_3 |
-------------------------------------------------------------
| 111111111111111 | 5/9/2017 2:03:03 PM | 67890   |         |
-------------------------------------------------------------

FIELD_3 以 NULL 形式出现,我认为这是因为文件中字段的对齐方式与 table.

不同

那么如何才能插入如下条目

-------------------------------------------------------------
| FIELD_1         | SYS_CREATION_DATE   | FIELD_2 | FIELD_3 |
-------------------------------------------------------------
| 111111111111111 | 5/9/2017 2:03:03 PM | 12345   | 67890   |
-------------------------------------------------------------

请试试这个,这应该有效

load data
infile "input.txt"
append
into table TEST_TABLE
fields terminated by ','
trailing nullcols
(
   FIELD_1                ,
   FIELD_2                ,
   FIELD_3                ,
  SYS_CREATION_DATE       "SYSDATE"
)