Professional Documents
Culture Documents
SQL LOADER is an Oracle utility used to load data into table given a datafile which has the records that need to be loaded. SQL*Loader takes data file, as well as a control file, to insert data into the table. When a Control file is executed, it can create Three (3) files called log file, bad file or reject file, discard file.
Log file tells you the state of the tables and indexes and the number of logical records already read from the input datafile. This information can be used to resume the load where it left off.
Bad file or reject file gives you the records that were rejected because of formatting errors or because they caused Oracle errors.
Discard file specifies the records that do not meet any of the loading criteria like when any of the WHEN clauses specified in the control file. These records differ from rejected records.
The data file can be in fixed record format or variable record format.
Fixed Record Format would look like the below. In this case you give a specific position where the Control file can expect a data field:
7369 SMITH
CLERK
7902 12/17/1980
800
7499 ALLEN
1600
7521 WARD
1250
7566 JONES
2975
7654 MARTIN
1250
7698 BLAKE
2850
7782 CLARK
2450
7788 SCOTT
ANALYST
7566 12/9/1982
3000
7839 KING
PRESIDENT
11/17/1981
5000
7844 TURNER
1500
7876 ADAMS
CLERK
7788 1/12/1983
1100
7900 JAMES
CLERK
7698 12/3/1981
950
7902 FORD
ANALYST
7566 12/3/1981
3000
7934 MILLER
CLERK
7782 1/23/1982
1300
Variable Record Format would like below where the data fields are separated by a delimiter.
1196700|9|0|692.64
1378901|2|3900|488.62
1418700|2|2320|467.92
1418702|14|8740|4056.36
1499100|1|0|3.68
1632800|3|0|1866.66
1632900|1|70|12.64
1637600|50|0|755.5
OPTIONS (SKIP = 1) The first row in the data file is skipped without loading
LOAD DATA
INFILE $FILE
APPEND
FIELDS TERMINATED BY |
TRAILING NULLCOLS
(ITEM_NUMBER
QTY
DECIMAL EXTERNAL,
REVENUE
DECIMAL EXTERNAL,
EXT_COST
MONTH
to_char(LAST_DAY(ADD_MONTHS(SYSDATE,-1)),DD-MON-YY) ,
DIVISION_CODE datafile
CONSTANT AUD Can specify constant value instead of Getting value from
OPTION statement precedes the LOAD DATA statement. The OPTIONS parameter allows you to specify runtime arguments in the control file, rather than on the command line. The following arguments can be specified using the OPTIONS parameter.
ROWS = n
Number of rows in conventional path bind array or between direct path data saves
INFILE* specifies that the data is found in the control file and not in an external file. INFILE $FILE, can be used to send the filepath and filename as a parameter when registered as a concurrent program.
LOAD DATA
INFILE /home/vision/kap/import2.csv
FIELDS TERMINATED BY ,
LOAD DATA
INFILE *
FIELDS TERMINATED BY ,
BEGINDATA
7369,SMITH,7902,Accounting
7499,ALLEN,7698,Sales
7521,WARD,7698,Accounting
7566,JONES,7839,Sales
7654,MARTIN,7698,Accounting
Example where file name and path is sent as a parameter when registered as a concurrent program
LOAD DATA
INFILE $FILE
FIELDS TERMINATED BY ,
TYPE OF LOADING:
INSERT If the table you are loading is empty, INSERT can be used.
APPEND If data already exists in the table, SQL*Loader appends the new rows to it. If data doesnt already exist, the new rows are simply loaded.
REPLACE All rows in the table are deleted and the new data is loaded
INTOTABLEis required to identify the table to be loaded into. In the above example INTO TABLE APPS.BUDGET, APPS refers to the Schema and BUDGET is the Table name.
FIELDS TERMINATED BY specifies how the data fields are terminated in the datafile.(If the file is Comma delimited or Pipe delimited etc)
OPTIONALLY ENCLOSED BY specifies that data fields may also be enclosed by quotation marks.
TRAILINGNULLCOLS clause tells SQL*Loader to treat any relatively positioned columns that are not present in the record as null columns.
LOAD DATA
INFILE sample.dat
empno
ename
POSITION(06:15) CHAR,
job
POSITION(17:25) CHAR,
mgr
sal
comm
deptno
name>
SQL*Loader loads the tables, creates the log file, and returns you to the system prompt. You can check the log file to see the results of running the case study.
Skip columns:
Data
NULLCOLS
Filler, ,