Definieer de kolom die u wilt overslaan als FILLER. Houd er rekening mee dat de volgorde van de kolommen in het controlebestand meestal de volgorde is waarin ze zich in het gegevensbestand bevinden. Als de naam overeenkomt met een kolom in de tabel, komt hij daar terecht.
...
(
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
)
Met andere woorden, de volgorde van de kolommen in het controlebestand komt overeen met de volgorde waarin ze zich in het gegevensbestand bevinden, niet hun volgorde in de tabel. Dat komt overeen met de naam, niet de volgorde.
EDIT - Ik heb enkele opmerkingen toegevoegd voor uitleg, maar ik geloof dat ze niet op die positie in het eigenlijke bestand kunnen staan. Zie hieronder voor een volledig voorbeeld:
Tabel maken:
CREATE TABLE T1
(
F1 VARCHAR2(50 BYTE),
F2 VARCHAR2(50 BYTE),
F3 VARCHAR2(50 BYTE)
);
Het controlebestand, 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
Voer het uit:
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
Kies uit de tabel:
Hopelijk helpt dit.