Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1718
  • Last Modified:

Sql loader data load

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
naga1979
Asked:
naga1979
  • 2
  • 2
  • 2
  • +1
1 Solution
 
rbrookerCommented:
hi,

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

good luck :)
0
 
Mark GeerlingsDatabase AdministratorCommented:
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
 
rbrookerCommented:
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
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
awking00Commented:
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
 
naga1979Author Commented:
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
 
awking00Commented:
>> 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
 
naga1979Author Commented:
awking00,

It works, Thanks a lot.

Cheers!!!
0

Featured Post

[Webinar On Demand] Database Backup and Recovery

Does your company store data on premises, off site, in the cloud, or a combination of these? If you answered “yes”, you need a data backup recovery plan that fits each and every platform. Watch now as as Percona teaches us how to build agile data backup recovery plan.

  • 2
  • 2
  • 2
  • +1
Tackle projects and never again get stuck behind a technical roadblock.
Join Now