Определете колоната, която искате да пропуснете, като FILLER. Имайте предвид, че редът на колоните в контролния файл обикновено е редът, в който са във файла с данни. Ако името съвпада с колона в таблицата, там ще отиде.
...
(
f1 CHAR, -- 1st field in the file, goes to column named f1 in the table
X FILLER, -- 2nd field in the file, ignored
f3 CHAR, -- 3rd field in the file, goes to column named f3 in the table
f2 CHAR -- 4th field in the file, goes to column named f2 in the table
)
С други думи, редът на колоните в контролния файл съвпада с реда, в който са във файла с данни, а не с техния ред в таблицата. Това се съпоставя по име, а не по ред.
РЕДАКТИРАНЕ - Добавих някои коментари за обяснение, но вярвам, че те не могат да бъдат на тази позиция в действителния файл. Вижте по-долу за пълен пример:
Създаване на таблица:
CREATE TABLE T1
(
F1 VARCHAR2(50 BYTE),
F2 VARCHAR2(50 BYTE),
F3 VARCHAR2(50 BYTE)
);
Контролният файл, example.ctl:
load data
infile *
truncate
into table t1
fields terminated by '|' trailing nullcols
(
f1 CHAR,
x FILLER,
f3 CHAR,
f2 CHAR
)
BEGINDATA
a|b|c|d
w|x|y|z
Стартирайте го:
C:\temp>sqlldr userid=login/[email protected] control=example.ctl
SQL*Loader: Release 11.2.0.1.0 - Production on Wed Apr 22 11:25:49 2015
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
Commit point reached - logical record count 2
Изберете от таблицата:
Надяваме се, че това помага.