उस कॉलम को परिभाषित करें जिसे आप फिलर के रूप में छोड़ना चाहते हैं। ध्यान रखें कि नियंत्रण फ़ाइल में स्तंभों का क्रम आमतौर पर वह क्रम होता है जो वे डेटाफ़ाइल में होते हैं। यदि नाम तालिका में किसी कॉलम से मेल खाता है, तो वह वहीं जाएगा।
...
(
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
तालिका से चुनें:
उम्मीद है कि यह मदद करता है।