Solved

Sql loader data load

Posted on 2006-11-08
7
1,707 Views
Last Modified: 2012-06-21
Hi All,

I need some help with the sql loader data loading options. I am trying to load a delimited file and want to skip the first field of the data stream. For example

Input file:

A,1,2,3,4
A,5,6,7,8
A,5,7,8,3

I want to skip the first column i.e., I don't want to load A. How to set this in the control file.

Cheers!
0
Comment
Question by:naga1979
  • 2
  • 2
  • 2
  • +1
7 Comments
 
LVL 18

Expert Comment

by:rbrooker
ID: 17901021
hi,

use a positional controlfile.
http://orafaq.com/faqloadr.htm
http://www.psoug.org/reference/sqlloader.html

good luck :)
0
 
LVL 34

Expert Comment

by:Mark Geerlings
ID: 17901190
I think with a delimited data file, you cannot skip fields with SQL*Loader.  With fixed-length (positional) data files, then SQL*Loader can skip fields.  If you have to work with delimited files, then your options are:
1. use a two step process: first use SQL*Loader to load the entire records into a single-column work table that you create for this purpose, then use "substr" to copy the parts of the records that you want to the table where you want the data.
2. use a PL\SQL procedure that uses utl_file to read each line of the data file, "substr" the values you want into variables, then insert each record.

0
 
LVL 18

Expert Comment

by:rbrooker
ID: 17901234
or..

load into a stage table and process using plsql to move the desired columns from the stage table to the destination table.
an advantage of this is that the stage table can be an external table.  an external table references a file on disk directly without needing you to use sqlloader.  to change the data in the external table, change the file it references ( remembering to maintain the same structure ).  this way, you will not need to use sql loader, it will be automatically done when you query the external table using sql.

simple :)
0
PRTG Network Monitor: Intuitive Network Monitoring

Network Monitoring is essential to ensure that computer systems and network devices are running. Use PRTG to monitor LANs, servers, websites, applications and devices, bandwidth, virtual environments, remote systems, IoT, and many more. PRTG is easy to set up & use.

 
LVL 31

Accepted Solution

by:
awking00 earned 100 total points
ID: 17901374
use filler keyword

create table skip_a(col2 number, col3 number, col4 number, col5 number);

create loader control file, ld.ctl

LOAD DATA
INFILE *
TRUNCATE INTO TABLE SKIP_A
FIELDS TERMINATED BY ','
(col1 filler char
,col2        char
,col3        char
,col4        char
,col5        char)
BEGINDATA
A,1,2,3,4
A,5,6,7,8
A,5,7,8,3

sqlldr username/password control=ld

SQL> select * from skip_a;

      COL2       COL3       COL4       COL5
---------- ---------- ---------- ----------
         1          2          3          4
         5          6          7          8
         5          7          8          3
0
 
LVL 1

Author Comment

by:naga1979
ID: 17901391
Markqeer,

Currently that's what I am doing. Stripping off the first field using a script and input that file to sql loader. I want to avoind that step if I can do it in the loader itself.

Cheers!!!
0
 
LVL 31

Expert Comment

by:awking00
ID: 17901577
>> Stripping off the first field using a script and input that file to sql loader. I want to avoind that step if I can do it in the loader itself.<<
That's what the keyword, FILLER, does.
0
 
LVL 1

Author Comment

by:naga1979
ID: 17901660
awking00,

It works, Thanks a lot.

Cheers!!!
0

Featured Post

PRTG Network Monitor: Intuitive Network Monitoring

Network Monitoring is essential to ensure that computer systems and network devices are running. Use PRTG to monitor LANs, servers, websites, applications and devices, bandwidth, virtual environments, remote systems, IoT, and many more. PRTG is easy to set up & use.

Join & Write a Comment

Article by: Swadhin
From the Oracle SQL Reference (http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/queries006.htm) we are told that a join is a query that combines rows from two or more tables, views, or materialized views. This article provides a glimps…
Working with Network Access Control Lists in Oracle 11g (part 1) Part 2: http://www.e-e.com/A_9074.html So, you upgraded to a shiny new 11g database and all of a sudden every program that used UTL_MAIL, UTL_SMTP, UTL_TCP, UTL_HTTP or any oth…
This video shows how to Export data from an Oracle database using the Datapump Export Utility.  The corresponding Datapump Import utility is also discussed and demonstrated.
This videos aims to give the viewer a basic demonstration of how a user can query current session information by using the SYS_CONTEXT function

744 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

13 Experts available now in Live!

Get 1:1 Help Now