JimS, November 13, 2017 - 5:13 am UTC
Hello Santosh
You mentioned the values in your file are separated by "TAB SPACE" but you only have the TAB character '\t' in your access parameters. If you change that to '\t ' (add a space before closing quote. It should work.
Quick example follows, of course you could also look to trim the space from the TAB.
I used vi to create a 2 row file with 3 values per row
each delimited by TAB and a SPACE then used cat command to check.
[oracle@localhost tmp]$ pwd
/tmp
[oracle@localhost tmp]$ cat -T test.txt
val1^I val2^I val3
val4^I val5^I val6
JIMS@ORCL> create table ext_table_load
2 (columna varchar2(50 byte),
3 columnb varchar2(50 byte),
4 columnc varchar2(50 byte)
5 )
6 organization external
7 (type oracle_loader
8 default directory ext_temp
9 access parameters
10 (records delimited by newline skip 1
11 nologfile
12 nobadfile
13 fields terminated by '\t ' optionally enclosed by '"'
14 )
15 location (ext_temp:'test.txt')
16 )
17 reject limit unlimited
18 noparallel
19 nomonitoring
20 /
Table created.
JIMS@ORCL> select * from ext_table_load;
COLUMNA
--------------------------------------------------
COLUMNB
--------------------------------------------------
COLUMNC
--------------------------------------------------
val4
val5
val6
As expected on the 2nd row shows as you have a skip 1 in your sample which I expect was to skip a header row?