Bulk Import in Oracle
I have created the table emp and I need to import bulk data from a file into emp
For Ex
CREATE TABLE emp
( c1 NUMBER,
Write a Control file, say emp.ctl
load data
options(direct=true)
insert
into table emp
fields terminated by ',' optionally enclosed by '"' TRAILING NULLCOLS
(
c1 DECIMAL EXTERNAL,
c2
)
Execute SQL*Loader as below.
sqlldr userid=user/pass@db data=reports.csv control=emp.ctl
If you always want to refresh the table with your data completely. TRUNCATE
the table and then load.
SQL*Loader
is great utility that provide numerous options for performance. Kindly go through the documentation about DIRECT and CONVENTIONAL loading.
There's something called EXTERNAL tables, that might interest you as well. They use the flat file for the table data.
You will have to use the inbuilt tool sql*loader to load data from external flat files into oracle.
1. create a control file control.ctl
load data
infile 'reports.csv'
into table emp
fields terminated by ',' optionally
enclosed by '"'
c1,c2
2. data file is your reports.csv
3.invoke sql*loader:
$ sqlldr scott/tiger control=control.ctl
Note: this is the name of the control file that you have made