SQL Loader - Skip empty, blank & space lines

Hi all

I load data into MS-Excel using SQL Loader.

Question:

If all the blank lines or spaces lines are there, currently it's inclusion as an empty entry.

Control file

OPTIONS (SKIP = 1)

load data

in the temp_upload table

Add

fields ended by ',' optionally surrounded "" "

TRAILING NULLCOLS

(

SPNAME "TRIM(:SPNAME)."

GROUP OF USERS "TRIM(:USERGROUP)."

IS_BUSINESS_CRITICAL "TRIM(:IS_BUSINESS_CRITICAL)"

BUSINESS_CRITICAL_COMMENT "TRIM(:BUSINESS_CRITICAL_COMMENT)"

BATCH_ID "(select batch_id de batch_tab) expression", "

ID 'TEMP_UPLOAD_ID_SEQ. NEXTVAL '.

)

Help:


Any solution to this problem? Please help me solve this problem.

Ordinarily, SQL * Loader will reject, by default, all the rows where all columns are null.  However, when you assign the batch_id and id, these columns are null, the line is busy.  You can use SQL * Loader or external table to load the data into a staging table without these id, which will skip null lines, then insert into your target, adding the id, as shown below.

Scott@orcl_11gR2 > host type test.dat

Some title or column names

spname1 usergroup1 ibc1, bcc1, batch1,

spname3, usergroup3, ibc3, bcc3, batch3,

Scott@orcl_11gR2 > type host test.ctl

OPTIONS (SKIP = 1)

load data

in the staging table

Add

fields ended by ',' optionally surrounded "" "

TRAILING NULLCOLS

(

SPNAME 'TRIM(:SPNAME) '.

, GROUP OF USERS "TRIM(:USERGROUP)."

, IS_BUSINESS_CRITICAL 'TRIM(:IS_BUSINESS_CRITICAL) '.

, BUSINESS_CRITICAL_COMMENT 'TRIM(:BUSINESS_CRITICAL_COMMENT) '.

)

Scott@orcl_11gR2 > creating staging table

2 (SPNAME varchar2 (7))

3 usergroup varchar2 (10),

4 IS_BUSINESS_CRITICAL varchar2 (4).

5 BUSINESS_CRITICAL_COMMENT varchar2 (4))

6.

Table created.

Scott@orcl_11gR2 > host sqlldr scott/tiger control = test.ctl data = test.dat log = test.log

SQL * Loader: release 11.2.0.1.0 - Production Wed Jul 3 11:08:04 2013

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

Commit the point reached - the number of logical records 3

Scott@orcl_11gR2 > select * from staging

2.

SPNAME USERGROUP IS_B BUSI

------- ---------- ---- ----

spname1 usergroup1 ibc1 bcc1

spname3 usergroup3 ibc3 bcc3

2 selected lines.

Scott@orcl_11gR2 > create table temp_upload

2 (SPNAME varchar2 (7))

3 usergroup varchar2 (10),

4 IS_BUSINESS_CRITICAL varchar2 (4).

5 BUSINESS_CRITICAL_COMMENT varchar2 (4).

6 number BATCH_ID,

Number 7)

8.

Table created.

Scott@orcl_11gR2 > create table batch_tab as select 10 double batch_id

2.

Table created.

Scott@orcl_11gR2 > create sequence temp_upload_id_seq

2.

Order of creation.

Scott@orcl_11gR2 > insert into temp_upload

2. Select usergroup, spname, is_business_critical, business_critical_comment,

3 (selection batch_id batch_tab),

4 temp_upload_id_seq.nextval

5 staging

6.

2 rows created.

Scott@orcl_11gR2 > select * from temp_upload

2.

SPNAME USERGROUP IS_B BUSI BATCH_ID ID

------- ---------- ---- ---- ---------- ----------

spname1 usergroup1 ibc1 bcc1 10 1

spname3 usergroup3 ibc3 10 2 bcc3

2 selected lines.

Tags: Database

Similar Questions

  • Import using sql loader triming trailing white spaces

    411885; JUICE 5-1; 990801;
    123777; BDG 558-1; 100101;



    I am importing data using sqlloader and problems with the load in the table space. The source of the data file is not safe how to provide "" in the beginning and the end of field 2. Is there an option on my end to remove the trailing spaces?

    Hey

    You can cut out using sqlloader in the control file columns listed all-in

    (deptno,
    dname "TRIM (:dname)",
    loc "TRIM (:loc)")
    

    Thank you
    AJ

  • SQL * LOADER skip the header and the footer while loading

    Hi, how can I ignore the header and footer both a flat file during the loading of a table using sql * loader?
    Also, can I use the direct method if my target table has a primary key and not null constraints defined on it?

    Hello

    To ignore the header, you can use JUMP, for the footer there is no specific way to ignore it (maybe it would be rejected).

    For more information on the laoding modes, you can check [11 classics and Direct Path loads | http://download.oracle.com/docs/cd/B19306_01/server.102/b14215/ldr_modes.htm#g1023818].

    Kind regards

  • Import from CSV file into oracle using pl/sql - sql loader 3.1

    Hello

    I am trying to learn how to import a CSV file in an oracle table. I tried the import utility in SQL Loader, but it generates specific lines of code to import each line. I would like a loop to go through the CSV file stored on my local disk and transferred it to my table.

    I tried the following, but not luck
    DOWNLOAD THE DATA
    INFILE 'sample_csv.csv '.
    IN THE TEST TABLE
    FIELDS TERMINATED BY ', '.
    ;

    951716 wrote:
    Hello

    I am trying to learn how to import a CSV file in an oracle table. I tried the import utility in SQL Loader, but it generates specific lines of code to import each line. I would like a loop to go through the CSV file stored on my local disk and transferred it to my table.

    line-by-line is slow by slow.
    PL/SQL will be NEVER faster than simple SQL
    INSERT INTO MYTABLE SELECT * FROM EXTERNAL_TBL;

    http://www.orafaq.com/wiki/External_table

  • SQL Loader + CLOB

    Dear friends,

    Please guide me with this.
    LOAD DATA 
    INFILE 'D:\load\dat\Enquiry_reply.dat'
    BADFILE 'D:\load\bad\Enquiry_reply.bad' 
    DISCARDFILE 'D:\load\dat\discard\Enquiry_reply.dsc' 
    replace INTO TABLE OES_Enquiry FIELDS TERMINATED BY '['
    (Reply CLOBFILE("D:\load\dat\oes_enquiry_reply.dat") TERMINATED BY '[')
    What is bad here in this?
    I am getting error:
    *SQL*Loader-350: Syntax error at line 6.*
    Expecting "," or ")", found "CLOBFILE".
    (Reply CLOBFILE("D:\load\dat\enquiry_reply.dat") TERMINATED BY '['
    Please me tips on how to on this subject.

    Thanks in advance.

    Nith

    Published by: user645399 on November 30, 2010 18:58

    Hello

    Use single quotes inside of double quotes for the path and file name.

    + ("' D:\load\dat\oes_enquiry_reply.dat'") +.

    Thank you.

  • SQL Loader error - reduced to bare bones

    I get the same error repeatedly when you try to use Sql Loader. So I reduced my load to a single record of test with 2 columns of text.



    The data file is "C:\data_dir\opps_test.csv" and simply looks like this:
    t | t



    Here is the control file:

    load data
    INFILE 'C:\data_dir\opps_test.csv '.
    in the opps_test table
    fields ended by ' |'
    (OPP_ID, CAMP_CODE)



    And here is a desc on the target table opps_test:

    OPP_ID VARCHAR2 (255)
    CAMP_CODE VARCHAR2 (255)



    When I run sql loader I get the following error on the screen and in my journal and I wonder if anyone has any idea what it really means. The data consists of just me typing t | t and save the csv file


    SQL * Loader: release 10.2.0.3.0 - Production Saturday, May 9, 22:12:19 2009

    Copyright (c) 1982, 2005, Oracle. All rights reserved.

    SQL * Loader-350: at line 1 syntax error.
    Illegal combination of nonalphanumeric characters
    {\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fswiss\fcharset
    ^


    Thank you

    Published by: John W on May 9, 2009 22:31

    Your control file works for me just as you posted.

    Just a hunch...

    SQL*Loader-350: Syntax error at line 1.
    Illegal combination of non-alphanumeric characters
    {\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fswiss\fcharset
    

    You save your control file or the data file with Microsoft Word or something other than a text editor?

  • SQL Loader - ignore the lines with "rejected - all null columns."

    Hello

    Please see the attached log file. Also joined the table creation script, data file and the bad and throw the files after execution.

    Sqlldr customer in the version of Windows-

    SQL * Loader: release 11.2.0.1.0 - Production

    The CTL file has two clauses INTO TABLE due to the nature of the data. The data presented are a subset of data in the real world file. We are only interested in the lines with the word "Index" in the first column.

    The problem we need to do face is, according to paragraph INTO TABLE appears first in the corresponding CTL lines file to the WHEN CLAUSE it would insert and the rest get discarded.

    1. statement of Create table : create table dummy_load (varchar2 (30) name, number, date of effdate);

    2. data file to simulate this issue contains the lines below 10. Save this as name.dat. The intention is to load all of the rows in a CTL file. The actual file would have additional lines before and after these lines that can be discarded.

    H15T1Y Index | 2. 19/01/2016 |

    H15T2Y Index | 2. 19/01/2016 |

    H15T3Y Index | 2. 19/01/2016 |

    H15T5Y Index | 2. 19/01/2016 |

    H15T7Y Index | 2. 19/01/2016 |

    H15T10Y Index | 2. 19/01/2016 |

    CPDR9AAC Index | 2. 15/01/2016 |

    MOODCAVG Index | 2. 15/01/2016 |

    H15TXXX Index | 2. 15/01/2016 |

    H15TXXX Index | 2. 15/01/2016 |

    3. the CTL file - name.ctl

    DOWNLOAD THE DATA

    ADD

    IN THE TABLE dummy_load

    WHEN (09:13) = "Index".

    TRAILING NULLCOLS

    (

    COMPLETED name BY ' | ',.

    rate TERMINATED BY ' | '.

    COMPLETED effdate BY ' | '. ' TO_DATE (: effdate, "MM/DD/YYYY").

    )

    IN THE TABLE dummy_load

    WHEN (08:12) = "Index".

    TRAILING NULLCOLS

    (

    COMPLETED name BY ' | ',.

    rate TERMINATED BY ' | '.

    COMPLETED effdate BY ' | '. ' TO_DATE (: effdate, "MM/DD/YYYY").

    )

    invoke SQL loader in a file-> beats

    C:\Oracle\product\11.2.0\client\bin\sqlldr USERID = myid/[email protected] CONTROL=C:\temp\t\name.ctl BAD=C:\temp\t\name_bad.dat LOG=C:\temp\t\name_log.dat DISCARD=C:\temp\t\name_disc.dat DATA=C:\temp\t\name.dat

    Once this is run, the following text appears in the log file (excerpt):

    Table DUMMY_LOAD, charged when 09:13 = 0X496e646578 ('Index' character)

    Insert the option in effect for this table: APPEND

    TRAILING NULLCOLS option in effect

    Column Position Len term Encl. Datatype name

    ------------------------------ ---------- ----- ---- ---- ---------------------

    NAME                                FIRST     *   |       CHARACTER

    RATE                                 NEXT     *   |       CHARACTER

    EFFDATE NEXT * |       CHARACTER

    SQL string for the column: ' TO_DATE (: effdate, "MM/DD/YYYY").

    Table DUMMY_LOAD, charged when 08:12 = 0X496e646578 ('Index' character)

    Insert the option in effect for this table: APPEND

    TRAILING NULLCOLS option in effect

    Column Position Len term Encl. Datatype name

    ------------------------------ ---------- ----- ---- ---- ---------------------

    NAME                                 NEXT     *   |       CHARACTER

    RATE                                 NEXT     *   |       CHARACTER

    EFFDATE NEXT * |       CHARACTER

    SQL string for the column: ' TO_DATE (: effdate, "MM/DD/YYYY").

    Record 1: Ignored - all null columns.

    Sheet 2: Cast - all null columns.

    Record 3: Ignored - all null columns.

    Record 4: Ignored - all null columns.

    Sheet 5: Cast - all null columns.

    Sheet 7: Discarded - failed all WHEN clauses.

    Sheet 8: Discarded - failed all WHEN clauses.

    File 9: Discarded - failed all WHEN clauses.

    Case 10: Discarded - failed all WHEN clauses.

    Table DUMMY_LOAD:

    1 row loaded successfully.

    0 rows not loaded due to data errors.

    9 lines not loading because all WHEN clauses were failed.

    0 rows not populated because all fields are null.

    Table DUMMY_LOAD:

    0 rows successfully loaded.

    0 rows not loaded due to data errors.

    5 rows not loading because all WHEN clauses were failed.

    5 rows not populated because all fields are null.


    The bad file is empty. The discard file has the following

    H15T1Y Index | 2. 19/01/2016 |

    H15T2Y Index | 2. 19/01/2016 |

    H15T3Y Index | 2. 19/01/2016 |

    H15T5Y Index | 2. 19/01/2016 |

    H15T7Y Index | 2. 19/01/2016 |

    CPDR9AAC Index | 2. 15/01/2016 |

    MOODCAVG Index | 2. 15/01/2016 |

    H15TXXX Index | 2. 15/01/2016 |

    H15TXXX Index | 2. 15/01/2016 |


    Based on the understanding of the instructions in the CTL file, ideally the first 6 rows will have been inserted into the table. Instead the table comes from the line 6' th.

    NAMERATEEFFDATE
    H15T10Y Index2January 19, 2016



    If the INTO TABLE clauses were put in the CTL file, then the first 5 rows are inserted and the rest are in the discard file. The line 6' th would have a ""rejected - all columns null. "in the log file. "


    Could someone please take a look and advise? My apologies that the files cannot be attached.

    Unless you tell it otherwise, SQL * Loader assumes that each later in the table and what clause after the first back in the position where the previous left off.  If you want to start at the beginning of the line every time, then you need to reset the position using position (1) with the first column, as shown below.  Position on the first using is optional.

    DOWNLOAD THE DATA

    ADD

    IN THE TABLE dummy_load

    WHEN (09:13) = "Index".

    TRAILING NULLCOLS

    (

    name POSITION (1) TERMINATED BY ' | '.

    rate TERMINATED BY ' | '.

    COMPLETED effdate BY ' | '. ' TO_DATE (: effdate, "MM/DD/YYYY").

    )

    IN THE TABLE dummy_load

    WHEN (08:12) = "Index".

    TRAILING NULLCOLS

    (

    name POSITION (1) TERMINATED BY ' | '.

    rate TERMINATED BY ' | '.

    COMPLETED effdate BY ' | '. ' TO_DATE (: effdate, "MM/DD/YYYY").

    )

  • Spaces in line in Doc w / notes in the form of two or three lines of blank space will appear at the bottom of the body of the text

    I am writing a thesis with a lot of commit and annoyingly, often two or three lines of blank space will appear at the bottom of the body of the text (not the reference section) on a given page. Fiddling around with notes (increasing or decreasing their), or with the body, which is sometimes useful, but it's not ideal - I wouldn't need to change what I say artificially in order to use the space in the body of the text... Any help is appreciated.

    Hi Peter,.

    What application you use to write the thesis?

    If you use Microsoft Office word, then I suggest you to send this request in the dedicated forums for office for assistance. Here is a link to the forum:

    http://answers.Microsoft.com/en-us/Office/Forum/Word?tab=threads

  • SQL Loader with the line terminator

    Dear friends,

    I use Oracle 10 g R2.

    Need to load some records to a text file to Oracle.

    It's my control file:
    LOAD DATA 
    INFILE 'D:\load\dat\FinNote.dat' 
    BADFILE 'D:\load\bad\FinNote.bad' 
    DISCARDFILE 'D:\load\dat\discard\FinNote.dsc' 
    INSERT INTO TABLE FinNote FIELDS TERMINATED BY '|' OPTIONALLY ENCLOSED BY '"' TRAILING 
    NULLCOLS
    ( IDNo, RegDate date 'YYYY-MM-DD HH24:MI:SS', Col1, Remark, UserID, Status)
    {code}
    
    My text file has semicolon as a row delimiter and | as column delimiter. Now, how can I add the semicolon as row delimiter. Please guide me.
    
    I followed the method given in this site: 
    http://www.exforsys.com/tutorials/oracle-10g/oracle-10g-sql-loader-input-data-and-datafiles.html
    
    
    *INFILE datafile_name ["str terminator_string"]*
    
    {code}
    LOAD DATA 
    INFILE 'D:\load\dat\CRS_FinNote.dat' ";"
    BADFILE 'D:\load\bad\CRS_FinNote.bad' 
    DISCARDFILE 'D:\load\dat\discard\CRS_FinNote.dsc' 
    INSERT INTO TABLE CRS_FinNote FIELDS TERMINATED BY '|' OPTIONALLY ENCLOSED BY '"' TRAILING 
    
    NULLCOLS
    ( StudentNo, IDate date 'YYYY-MM-DD HH24:MI:SS', Topic, Remark, UserID, Status)
    and received the error:

    SQL * Loader-500: could not open the file (D:\load\dat\CRS_FinNote.dat)
    SQL * Loader-555: unrecognized property treatment option
    SQL * Loader-509: System error: the operation completed successfully.
    SQL * Loader-2026: the charge was dropped because SQL Loader cannot continue.
    SQL * Loader-513: cannot close the file (D:\load\dat\CRS_FinNote.dat)
    SQL * Loader-559: Error closing file
    SQL * Loader-509: System error: the storage control block address is invalid.

    Thanks in advance.
    Nith

    Published by: user645399 on June 16, 2010 10:35

    And, if your CRS_FinNote.dat look like below (line/record delimited; then)

    1245|2000-05-16|Oracle|The Best|AAA|Online;
    294|2000-04-03|Dotnet|Best|BBB|Pending;
    300|2010-03-28|C++|The Best|CCC|Offline;
    

    Scott@ORCL > select utl_raw.cast_to_raw (';') under "hexadecimal;" double;

    in hexadecimal
    --------------------------------------------------------------------------------
    3B

    Then I change user645399.ctl with below:

    LOAD DATA
    INFILE 'd:\csv\CRS_FinNote.dat' "str X'3B'"
    BADFILE 'd:\csv\FinNote.bad'
    DISCARDFILE 'd:\csv\FinNote.dsc'
    INSERT INTO TABLE FinNote FIELDS TERMINATED BY '|' OPTIONALLY ENCLOSED BY '"' TRAILING
    NULLCOLS
    ( IDNo, RegDate date 'YYYY-MM-DD HH24:MI:SS', Col1, Remark, UserID, Status)
    

    The idea received a link from http://www.orafaq.com/forum/t/140062/0/.

    C:\Documents and Settings\Girish Sharma>sqlldr scott/tiger@orcl control=d:\csv\user645399.ctl log=user645399.log
    
    Enter user-name: scott/tiger
    
    Connected to:
    Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
    With the Partitioning, OLAP and Data Mining options
    
    SCOTT@orcl> select * from finnote;
    
          IDNO REGDATE              COL1       REMARK     USERID     STATUS
    ---------- -------------------- ---------- ---------- ---------- ----------
          1245 16-may-2000 00:00:00 Oracle     The Best   AAA        Online
           294 03-apr-2000 00:00:00 Dotnet     Best       BBB        Pending
           300 28-mar-2010 00:00:00 C++        The Best   CCC        Offline
    
    SCOTT@orcl>
    

    HTH
    Girish Sharma

  • SQL * Loader - rejected records - error on table ORA-01722: invalid number

    Get the following errors:

    Please tell me where I'm wrong?
    The log file and extracts the data file with the control file is attached.
    Also guide me please how I can download 4900 files at once?

    -------------------------------------
    SQL * Loader: release 11.1.0.7.0 - Production on Fri 14 Oct 03:06:06 2011

    Copyright (c) 1982, 2007, Oracle. All rights reserved.

    Control file: sample.ctl
    Data file: Cities.csv
    Bad leadership: Cities.bad
    Discard File: none is specified

    (Allow all releases)

    Number of loading: ALL
    Number of jump: 0
    Authorized errors: 50
    Link table: 64 lines, maximum of 256000 bytes
    Continuation of the debate: none is specified
    Path used: classics

    Table CITY, loaded from every logical record.
    Insert the option in effect for this table: INSERT

    Column Position Len term Encl. Datatype name
    ------------------------------ ---------- ----- ---- ---- ---------------------
    FIRST ID *, CHARACTER
    35. ACCORDING TO NAME, ' CHARACTER
    COUNTRYCODE 3, ' CHARACTER
    THE NEXT POPULATION * CHARACTER WHT

    Sheet 1: Rejected - error on the table CITY, POPULATION column.
    ORA-01722: invalid number

    Sheet 2: Rejected - error on the table CITY, POPULATION column.
    ORA-01722: invalid number

    Sheet 3: Rejected - error on the table CITY, POPULATION column.
    ORA-01722: invalid number

    Folder 4: Rejected - error on the table CITY, POPULATION column.
    ORA-01722: invalid number

    Sheet 5: Rejected - error on the table CITY, POPULATION column.
    ORA-01722: invalid number

    Sheet 6: Rejected - error on the table CITY, POPULATION column.
    ORA-01722: invalid number

    Sheet 7: Rejected - error on the table CITY, POPULATION column.
    ORA-01722: invalid number

    Sheet 8: Rejected - error on the table CITY, POPULATION column.
    ORA-01722: invalid number

    File 9: Rejected - error on the table CITY, POPULATION column.
    ORA-01722: invalid number

    Case 10: Rejected - error on the table CITY, POPULATION column.
    ORA-01722: invalid number

    Factsheet 11: Rejected - error on the table CITY, POPULATION column.
    ORA-01722: invalid number

    Sheet 12: Rejected - error on the table CITY, POPULATION column.
    ORA-01722: invalid number

    File 13: Rejected - error on the table CITY, POPULATION column.
    ORA-01722: invalid number

    Fact sheet 14: Rejected - error on the table CITY, POPULATION column.
    ORA-01722: invalid number

    Fact sheet 15: Rejected - error on the table CITY, POPULATION column.
    ORA-01722: invalid number

    Sheet 16: Rejected - error on the table CITY, POPULATION column.
    ORA-01722: invalid number

    File 17: Rejected - error on the table CITY, POPULATION column.
    ORA-01722: invalid number

    Sheet 18: Rejected - error on the table CITY, POPULATION column.
    ORA-01722: invalid number

    File 19: Rejected - error on the table CITY, POPULATION column.
    ORA-01722: invalid number

    Sheet 20: Rejected - error on the table CITY, POPULATION column.
    ORA-01722: invalid number

    Sheet 21: Rejected - error on the table CITY, POPULATION column.
    ORA-01722: invalid number

    Account 22: rejected - error on the table CITY, POPULATION column.
    ORA-01722: invalid number

    Sheet 23: Rejected - error on the table CITY, POPULATION column.
    ORA-01722: invalid number

    Record number of 24: rejected - error on the table CITY, POPULATION column.
    ORA-01722: invalid number

    Sheet 25: Rejected - error on the table CITY, POPULATION column.
    ORA-01722: invalid number

    Fact sheet 26: Rejected - error on the table CITY, POPULATION column.
    ORA-01722: invalid number

    Fact sheet 27: Rejected - error on the table CITY, POPULATION column.
    ORA-01722: invalid number

    Record 28: Rejected - error on the table CITY, POPULATION column.
    ORA-01722: invalid number

    Record 29: rejected - error on the table CITY, POPULATION column.
    ORA-01722: invalid number

    Record 30: Rejected - error on the table CITY, POPULATION column.
    ORA-01722: invalid number

    Record of 31: rejected - error on the table CITY, POPULATION column.
    ORA-01722: invalid number

    • Statement 32: Rejected - error on the table CITY, POPULATION column.
    ORA-01722: invalid number

    Record 33: Rejected - error on the table CITY, POPULATION column.
    ORA-01722: invalid number

    Page 34: Rejected - error on the table CITY, POPULATION column.
    ORA-01722: invalid number

    Record 35: Rejected - error on the table CITY, POPULATION column.
    ORA-01722: invalid number

    Record 36: Rejected - error on the table CITY, POPULATION column.
    ORA-01722: invalid number

    Record 37: Rejected - error on the table CITY, POPULATION column.
    ORA-01722: invalid number

    Record 38: Rejected - error on the table CITY, POPULATION column.
    ORA-01722: invalid number

    Sheet 39: Rejected - error on the table CITY, POPULATION column.
    ORA-01722: invalid number

    Record 40: Rejected - error on the table CITY, POPULATION column.
    ORA-01722: invalid number

    Sheet 41: Rejected - error on the table CITY, POPULATION column.
    ORA-01722: invalid number

    Page 42: Rejected - error on the table CITY, POPULATION column.
    ORA-01722: invalid number

    Record 43: Rejected - error on the table CITY, POPULATION column.
    ORA-01722: invalid number

    Sheet 44: Rejected - error on the table CITY, POPULATION column.
    ORA-01722: invalid number

    Record 45: Rejected - error on the table CITY, POPULATION column.
    ORA-01722: invalid number

    • Statement 46: Rejected - error on the table CITY, POPULATION column.
    ORA-01722: invalid number

    Record 47: Rejected - error on the table CITY, POPULATION column.
    ORA-01722: invalid number

    Record 48: Rejected - error on the table CITY, POPULATION column.
    ORA-01722: invalid number

    Record 49: Rejected - error on the table CITY, POPULATION column.
    ORA-01722: invalid number

    Page 50: Rejected - error on the table CITY, POPULATION column.
    ORA-01722: invalid number

    Record 51: Rejected - error on the table CITY, POPULATION column.
    ORA-01722: invalid number


    NUMBER of MAXIMUM ERRORS EXCEEDED - above the statistics reflect partial performance.

    CITY table:
    0 rows successfully loaded.
    51 lines not filled due to data errors.
    0 rows not loading because all WHEN clauses were failed.
    0 rows not populated because all fields are null.


    The space allocated to bind table: 35840 bytes (64 lines)
    Bytes of read buffer: 1048576

    Total logical records ignored: 0
    Total logical records read: 64
    Total rejected logical records: 51
    Total logical records ignored: 0

    Run started on Fri 14 Oct 03:06:06 2011
    Run finished Fri Oct 14 03:06:12 2011

    Time was: 00:00:06.18
    Time processor was: 00:00:00.03



    ----------------------------------------------------------------------

    my control file (sample.ctl):

    Load data infile 'Cities.csv '.
    in the town of table
    fields completed by «,»
    (external id integer,
    char (35) name box by ' ', '
    CountryCode tank (3) box by ' ', '
    external population integer terminated by '\n '.
    )

    my data (Cities.csv) file (it contains 4900 documents, but I show here just 4 records for ease)

    3830, "Virginia Beach", "USA", 425257
    3831, 'Atlanta', 'USA', 416474
    3832, "Sacramento", "USA", 407018
    3833, 'Oakland', 'USA', 399484


    Thanks in advance!

    Watch when I have a little change your database as follows

    1,'Kabul','AFG',1780000
    2,'Qandahar','AFG','237500'
    3,'Herat','AFG','186800'  
    

    I got the same error (last 2 rows rejected for the same number invalid error)

    mhouri > select * from cities;
    
            ID NAME                                COU POPULATION
    ---------- ----------------------------------- --- ----------
             1 Kabul                               AFG    1780000
    
    SQL*Loader: Release 10.2.0.3.0 - Production on Fri Oct 14 10:38:06 2011
    
    Copyright (c) 1982, 2005, Oracle.  All rights reserved.
    
    Control File:   cities.ctl
    Data File:      cities.dat
      Bad File:     cities.bad
      Discard File:  none specified
    
     (Allow all discards)
    
    Number to load: ALL
    Number to skip: 0
    Errors allowed: 50
    Bind array:     64 rows, maximum of 256000 bytes
    Continuation:    none specified
    Path used:      Conventional
    
    Table CITIES, loaded from every logical record.
    Insert option in effect for this table: INSERT
    
       Column Name                  Position   Len  Term Encl Datatype
    ------------------------------ ---------- ----- ---- ---- ---------------------
    ID                                  FIRST     *   ,       CHARACTER
    NAME                                 NEXT    35   ,    '  CHARACTER
    COUNTRYCODE                          NEXT     3   ,    '  CHARACTER
    POPULATION                           NEXT     *  WHT      CHARACTER            
    
    Record 4: Rejected - Error on table CITIES, column ID.
    Column not found before end of logical record (use TRAILING NULLCOLS)
    Record 2: Rejected - Error on table CITIES, column POPULATION.
    ORA-01722: invalid number
    
    Record 3: Rejected - Error on table CITIES, column POPULATION.
    ORA-01722: invalid number
    
    Table CITIES:
      1 Row successfully loaded.
      3 Rows not loaded due to data errors.
      0 Rows not loaded because all WHEN clauses were failed.
      0 Rows not loaded because all fields were null.
    
    Space allocated for bind array:                  35840 bytes(64 rows)
    Read   buffer bytes: 1048576
    
    Total logical records skipped:          0
    Total logical records read:             4
    Total logical records rejected:         3
    Total logical records discarded:        0
    
    Run began on Fri Oct 14 10:38:06 2011
    Run ended on Fri Oct 14 10:38:06 2011
    
    Elapsed time was:     00:00:00.23
    CPU time was:         00:00:00.09
    

    Value of the population within the data file must be a number

    Best regards

    Mohamed Houri

  • SQL Loader Control file - which represent decimal numbers

    Hello

    I use the version of database Oracle 10.2.0. I will receive a data file delimited pipe I need to load into the table specified below. Can you please suggest me how to represent the last column ERROR_PERCENT in the control file, which is number (3.2) in the table? I tried DECIMAL (3,2), EXTERNAL (3,2) DECIMAL against it and I get errors wasgetting. Help, please.



    CREATE TABLE TRACK_ERRORS
    (
    ACCOUNT_ID NUMBER (7).
    DATESTAMP TIMESTAMP (6).
    SPECIFIC_RISK NUMBER (3).
    STOCK_RISK NUMBER (3).
    ERROR_PERCENT NUMBER (3.2)
    )



    OPTIONS (SKIP = 1)
    DOWNLOAD THE DATA
    INFILE 'C:\Sqlldr\Input\Track_Errors.dat '.
    BADFILE "C:\Sqlldr\Track_Errors.bad."
    DISCARDFILE 'C:\Sqlldr\Track_Errors.dis '.
    ADD
    IN THE TABLE "TRACK_ERRORS.
    fields ended by ' |' SURROUNDED OF POSSIBLY "" "
    TRAILING NULLCOLS
    (Account_Id EXTERNAL INTEGER (7)
    , datestamp 'Rtrim (to_date (:datestamp,'YYYY/MM/DD')).
    Specific_Risk INTEGER EXTERNAL (3)
    Stock_Risk INTEGER EXTERNAL (3)
    ERROR_PERCENT
    )


    Kind regards
    Naveen

    Naveen Kumar C wrote:
    I tried with decimal external. It does not work. The following is the log file

    SQL * Loader: Release 10.2.0.1.0 - Production on Thu Feb 25 10:11:42 2010

    Copyright (c) 1982, 2005, Oracle. All rights reserved.

    Control file: track_errors.ctl
    Data file: C:\Sqlldr\Input\Track_Errors.dat
    Bad leadership: C:\Sqlldr\Track_Errors.bad
    Delete the file: C:\Sqlldr\Track_Errors.dis
    (Allow all releases)

    Number of loading: ALL
    Number of jump: 1
    Authorized errors: 50
    Link table: 64 lines, maximum of 256000 bytes
    Continuation of the debate: none is specified
    Path used: classics

    Table "TRACK_ERRORS', loaded from every logical record.
    Insert the option in effect for this table: APPEND
    TRAILING NULLCOLS option in effect

    Column Position Len term Encl. Datatype name
    ------------------------------ ---------- ----- ---- ---- ---------------------
    FIRST ARGUMENT ACCOUNT_ID 7 | O ("") CHARACTER
    DATESTAMP NEXT * | O ("") CHARACTER
    The SQL string for the column: "Rtrim (to_date (:datestamp,'YYYY/MM/DD')).
    SPECIFIC_RISK 3 | O ("") CHARACTER
    STOCK_RISK 3 | O ("") CHARACTER
    ERROR_PERCENT NEXT * | O ("") CHARACTER

    Sheet 1: Rejected - error on the table 'TRACK_ERRORS", the ERROR_PERCENT column.
    ORA-01438: value larger than the precision specified for the column

    Sheet 2: Rejected - error on the table 'TRACK_ERRORS", the ERROR_PERCENT column.
    ORA-01438: value larger than the precision specified for the column

    Sheet 3: Rejected - error on the table 'TRACK_ERRORS", the ERROR_PERCENT column.
    ORA-01438: value larger than the precision specified for the column

    Table "TRACK_ERRORS":
    0 rows successfully loaded.
    3 rows not loaded due to data errors.
    0 rows not loading because all WHEN clauses were failed.
    0 rows not populated because all fields are null.

    The space allocated to bind table: 34432 byte (64 lines)
    Bytes of read buffer: 256000

    Ignored logical records total: 1
    Total logical records read: 3
    Total rejected logical records: 3
    Total logical records ignored: 0

    Run started the Thu Feb 25 10:11:42 2010
    Run finished the game Feb 25 10:11:55 2010

    Time was: 00:00:13.99
    Time processor was: 00:00:00.14

    It does not work because of the data and not + external comma +.
    These mistakes ORA-set out clearly that your data values are larger than the eligible accuracy.

    isotope

  • SQL Loader mystery

    Would appreciate any help. 10.2.0.4 standard Edition on Windows 2003 64-bit.

    My definition of the table is:
    create table cfive (keywords varchar2(4000));
    My SQL Loader Control file is:
    LOAD DATA 
    INFILE 'C:\Documents and Settings\Administrator.HORAE\Desktop\testdata.txt' 
    APPEND 
    INTO TABLE import.cfive 
    FIELDS TERMINATED BY ',' 
    OPTIONALLY ENCLOSED BY '"' 
    TRAILING NULLCOLS 
    (KEYWORDS)
    And my data are:

    'active wear, young, ballerina, ballerina, ballet, ballerinas, Pointe Shoes,
    Body, clothes, clothing dance, dancer, sweet, graceful, dance, education, shoes,
    inside, instruction, isolation, Leotard, tutu, pensive, people, performance, skill, solitude,.
    women, the preparation, the tying, studio shot.

    (I broke which on several lines here, but in reality, it's a whole long line of text).

    I invoke sqlloader as follows:
    sqlldr import/xxxxxxx control=testctl.txt log=testlog3.txt bad=testbad3.txt
    The program ends, but generates a log file that includes this:
    Control File:   testctl.txt
    Data File:      C:\Documents and Settings\Administrator.HORAE\Desktop\testdata.txt
      Bad File:     testbad3.txt
      Discard File:  none specified
     
     (Allow all discards)
    
    Number to load: ALL
    Number to skip: 0
    Errors allowed: 50
    Bind array:     64 rows, maximum of 256000 bytes
    Continuation:    none specified
    Path used:      Conventional
    
    Table IMPORT.CFIVE, loaded from every logical record.
    Insert option in effect for this table: APPEND
    TRAILING NULLCOLS option in effect
    
       Column Name                  Position   Len  Term Encl Datatype
    ------------------------------ ---------- ----- ---- ---- ---------------------
    KEYWORDS                            FIRST     *   ,  O(") CHARACTER            
    
    Record 1: Rejected - Error on table IMPORT.CFIVE, column KEYWORDS.
    Field in data file exceeds maximum length
    
    Table IMPORT.CFIVE:
      0 Rows successfully loaded.
      1 Row not loaded due to data errors.
      0 Rows not loaded because all WHEN clauses were failed.
      0 Rows not loaded because all fields were null.
    .. .and my line of data is not loaded. The log file says that keywords data of excessive length, but is of course not: the table allows 4000 characters, actual data are only 286 characters long.

    The database using WE8ISO8859P1 character set, bytes and characters should be equivalent to this opportunity.

    I'm looking for indications as to why it does not work! Thank you in advance.

    Try to specify the maximum length of the data entry in SQL * Loader control file:

    LOAD DATA
    INFILE 'testdata.txt'
    INTO TABLE cfive
    FIELDS TERMINATED BY ','
    OPTIONALLY ENCLOSED BY '"'
    (keywords char(4000))
    {code}
    
    with testdata.txt on 1 line:
    {code}
    "active wear,young,ballerina,ballet dancer,ballet dancing,ballet slippers,pointe shoes,soft,bodysuit,clothing,dance wear,dancer,graceful,dancing,educated,female,footwear,indoors,instruction,isolation,leotard,tutu,pensive,people,performing,skill,solitude,women,preparing,tying,studio shot"
    {code}
    
    I get:
    {code}
    type testdata.log
    
    SQL*Loader: Release 10.2.0.1.0 - Production on Fri Oct 2 09:40:33 2009
    
    Copyright (c) 1982, 2005, Oracle.  All rights reserved.
    
    Control File:   testdata.ctl
    Data File:      testdata.txt
      Bad File:     testdata.bad
      Discard File:  none specified
    
     (Allow all discards)
    
    Number to load: ALL
    Number to skip: 0
    Errors allowed: 50
    Bind array:     64 rows, maximum of 256000 bytes
    Continuation:    none specified
    Path used:      Conventional
    
    Table CFIVE, loaded from every logical record.
    Insert option in effect for this table: INSERT
    
       Column Name                  Position   Len  Term Encl Datatype
    ------------------------------ ---------- ----- ---- ---- ---------------------
    KEYWORDS                            FIRST  4000   ,  O(") CHARACTER
    
    value used for ROWS parameter changed from 64 to 63
    
    Table CFIVE:
      1 Row successfully loaded.
      0 Rows not loaded due to data errors.
      0 Rows not loaded because all WHEN clauses were failed.
      0 Rows not loaded because all fields were null.
    
    Space allocated for bind array:                 252126 bytes(63 rows)
    Read   buffer bytes: 1048576
    
    Total logical records skipped:          0
    Total logical records read:             1
    Total logical records rejected:         0
    Total logical records discarded:        0
    
    Run began on Fri Oct 02 09:40:33 2009
    Run ended on Fri Oct 02 09:40:33 2009
    
    Elapsed time was:     00:00:00.08
    CPU time was:         00:00:00.03
    

    and

    SQL> select length(keywords) from cfive;
    
    LENGTH(KEYWORDS)
    ----------------
                 286
    

    I use the customer of Oracle 10.2.0.1 database and Oracle 10.2.0.4 EE database.

  • SQL Loader failed

    Hi all

    I am load flat file in custom intermediate table using sql loader, but I'm betting that the error

    Record 2720: Rejected - error on the table XXPLL_SALES_FCST_BGA_TMPL, column MKTG_ASP.

    ORA-01722: invalid number

    XXPLL_SALES_FCST_BGA_TMPL - Custom intermediate Table


    MKTG_ASP - contains decimal values


    I created this column as a number data type.


    I've seen much after and it was proposed to use 'Decimal external' but it still does not work. All suggestions will be useful.



    Thank you

    Sharath Chander M



    Hi Barbara Boehmer

    Now, I changed in the file ctl under 'EXTERNAL DECIMAL Mktg_ASP DONE BY a SPACE' and now all data are allowed in / load. Is - this way?

    I will also try as you say. Also if the data file has a line any, as a null value for this column will be it's causing any problem for the amendment that I have performed in ctl file?

    Thank you

    Sharath Chander M

  • SQL * Loader does not import data

    Hi all -

    I have a very basic package which should load data from a file delimited by tabs.  My problem is that when I run my package, no data is loaded. Although the correct number of records is created (based on relaxation of the table).  All records contain no data.

    OPTIONS (skip = 1, errors = 10, lines = 10000, direct = True)

    DOWNLOAD THE DATA

    INFILE "C:\ECOMMERCE\VFT\Marin\inbound\DSGSiteCatalystPassbackKeywords.csv" "str"\n"

    BADFILE "C:\ECOMMERCE\MFT\NxtGen_Catalog_Int\ErrorFiles\MARIN_DSG_KEYWORDS.bad."

    DISCARDFILE 'C:\ECOMMERCE\MFT\NxtGen_Catalog_Int\ErrorFiles\MARIN_DSG_KEYWORDS.dsc '.

    IN THE TABLE "ETL_STAGE". "" MARIN_KEYWORD ".

    ADD

    EVALUATE CHECK_CONSTRAINTS

    "FIELDS TERMINATED BY ' 09 X."

    TRAILING NULLCOLS

    (

    MARIN_KEYWORD_ID,

    KEYWORD,

    BUSINESS_DATE,

    EDITOR,

    ACCOUNT,

    CAMPAIGN,

    AD_GROUP,

    TYPE CHAR (100000),

    DESTINATION_URL,

    UNIQUE_ID,

    PUB_ID,

    PRINT,

    CLICKS,

    PUB_COST,

    ATTRIBUTED_CONVERSIONS_CONV,

    CLICK_PATH_CONV,

    LAST_CLICK_CONV,

    EMAIL_SIGNUPS_CONV,

    SCORECARD_SIGNUPS_CONV,

    STORE_LOCATOR_PAGE_CONV

    )

    My table creation script is:

    CREATE THE TABLE ETL_STAGE. MARIN_KEYWORD

    (

    MARIN_KEYWORD_ID VARCHAR2 (1000 BYTE),

    KEYWORD VARCHAR2 (1000 BYTE).

    BUSINESS_DATE VARCHAR2 (200 BYTE),

    EDITOR VARCHAR2 (1000 BYTE),

    ACCOUNT VARCHAR2 (1000 BYTE),

    CAMPAIGN VARCHAR2 (1000 BYTE),

    AD_GROUP VARCHAR2 (1000 BYTE),

    TYPE VARCHAR2 (1000 BYTE),

    DESTINATION_URL VARCHAR2 (1000 BYTE),

    UNIQUE_ID VARCHAR2 (1000 BYTE),

    PUB_ID VARCHAR2 (1000 BYTE),

    VARCHAR2 (1000 BYTE) PRINT,

    VARCHAR2 (1000 BYTE) CLICKS,

    PUB_COST VARCHAR2 (1000 BYTE),

    ATTRIBUTED_CONVERSIONS_CONV VARCHAR2 (1000 BYTE),

    CLICK_PATH_CONV VARCHAR2 (1000 BYTE),

    LAST_CLICK_CONV VARCHAR2 (1000 BYTE),

    EMAIL_SIGNUPS_CONV VARCHAR2 (1000 BYTE),

    SCORECARD_SIGNUPS_CONV VARCHAR2 (1000 BYTE),

    STORE_LOCATOR_PAGE_CONV VARCHAR2 (1000 BYTE),

    IMEX_LOG_REFERENCE_ID VARCHAR2 (1000 BYTE),

    DATE_ADDED DATE DEFAULT SYSDATE NOT NULL,.

    ADDED_BY VARCHAR2 (50 BYTES) BY DEFAULT USER NOT NULL,.

    DATE_LAST_MODIFIED DATE DEFAULT SYSDATE NOT NULL,.

    MODIFIED_BY VARCHAR2 (50 BYTES) BY DEFAULT USER NOT NULL,.

    RECORD_STATUS VARCHAR2 (1 BYTE) DEFAULT 'A' NOT NULL

    )

    TABLESPACE ECOM_DATA

    PCTUSED 0

    PCTFREE 10

    INITRANS 1

    MAXTRANS 255

    STORAGE)

    64K INITIALS

    ACCORDING TO 1 M

    MINEXTENTS 1

    MAXEXTENTS UNLIMITED

    PCTINCREASE 0

    DEFAULT USER_TABLES

    )

    LOGGING

    NOCOMPRESS

    NOCACHE

    NOPARALLEL

    MONITORING;

    The log displays the following text:

    SQL * Loader: release 11.2.0.2.0 - Production on Thu Jun 25 14:31:35 2015

    Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

    Control file: C:\ECOMMERCE\MFT\NxtGen_Catalog_Int\SQLLoaderScripts\MARIN_DSG_CREATIVES.ctl

    Data file: C:\ECOMMERCE\VFT\Marin\inbound\DSGSiteCatalystPassbackCreatives.csv

    Bad leadership: C:\\ECOMMERCE\MFT\NxtGen_Catalog_Int\ErrorFiles\MARIN_DSG_CREATIVES.bad

    Delete the file: C:\ECOMMERCE\MFT\NxtGen_Catalog_Int\ErrorFiles\MARIN_DSG_CREATIVES.dsc

    (Allow all releases)

    Number of loading: ALL

    Number of jump: 10

    Authorized errors: 50

    Link table: 64 lines, maximum of 256000 bytes

    Continuation of the debate: none is specified

    Path used: classics

    Table 'ETL_STAGE '. "" MARIN_CREATIVE ", loaded from every logical record.

    Insert the option in effect for this table: APPEND

    TRAILING NULLCOLS option in effect

    Column Position Len term Encl. Datatype name

    ------------------------------ ---------- ----- ---- ---- ---------------------

    CREATIVE_ID PRIME * WHT O(") CHARACTER

    The maximum field length is 100,000

    HEADLINE THEN * CHARACTER O(") WHT

    BUSINESS_DATE NEXT * CHARACTER O(") WHT

    The SQL string for the column: 'TRIM(:BUSINESS_DATE) '.

    DESCRIPTION_LINE_1 NEXT * CHARACTER O(") WHT

    DESCRIPTION_LINE_2 NEXT * CHARACTER O(") WHT

    DISPLAY_URL NEXT * CHARACTER O(") WHT

    DESTINATION_URL NEXT * WHT O(") CHARACTER

    The maximum field length is 100,000

    EDITOR NEXT * CHARACTER O(") WHT

    THEN THE CAMPAIGN * CHARACTER O(") WHT

    AD_GROUP NEXT * CHARACTER O(") WHT

    UNIQUE_ID NEXT * CHARACTER O(") WHT

    PUB_ID NEXT * CHARACTER O(") WHT

    PRINT NEXT * CHARACTER O(") WHT

    The SQL string for the column: "replace (: print, ',',") "."

    CLICK ON NEXT * CHARACTER O(") WHT

    The SQL string for the column: "replace (: CLICKS, ',',") "."

    ATTRIBUTED_CONVERSIONS_CONV NEXT * CHARACTER O(") WHT

    CLICK_PATH_CONV NEXT * CHARACTER O(") WHT

    LAST_CLICK_CONV NEXT * CHARACTER O(") WHT

    EMAIL_SIGNUPS_CONV NEXT * CHARACTER O(") WHT

    SCORECARD_SIGNUPS_CONV NEXT * CHARACTER O(") WHT

    STORE_LOCATOR_PAGE_HITS_CONV NEXT * CHARACTER O(") WHT

    IMEX_LOG_REFERENCE_ID NEXT * CHARACTER O(") WHT

    Why WHT, showing when I use tabs?

    In addition, why is not display all the data in the files?

    NLS_CHARACTERSET WE8ISO8859P1
  • SQL Loader when Clause

    Hello

    I have a requirement to load a file and exclude lines on a column with a value where ID NOT LIKE ' % no data %'

    OPTIONS (SKIP = 3)

    DOWNLOAD THE DATA

    INFILE ' / home/test.csv '

    IN THE test TABLE

    TRUNCATE

    What ID do NOT LIKE ' % no data %'

    ' Surrounded FIELDS TERMINATED BY ',' possibly ' ' '

    TRAILING NULLCOLS

    (ID,

    BEGUN,

    TIME,

    DATE_ADDED SYSDATE

    )

    Some examples of ID:

    Data AVDFGHKL:no

    Data THGEIUJD:no

    The value will always point 10 a go (after the semi colon)

    I tried the following, but not luck

    When (1) = '1') AND (10:2). = 'No '.

    Yes, the outer table can be a better option (the file must be in the server). Depending on your data (i.e. the colon (:)) always comes in 9th place) it will work.)

    [oracle@localhost saubhik]$ cat my_data.txt
    AVDFGHKL:No Data, 09/11/2009
    JFDJFUJK, 09/11/2009
    AGHFJDKK:No Data, 09/11/2009
    TRUTIRUT, 09/11/2009
    [oracle@localhost saubhik]$ 
    
    [oracle@localhost saubhik]$ cat test_emp_ctl.ctl
    LOAD DATA
    INFILE 'my_data.txt'
    INTO TABLE test
    TRUNCATE
    when (9:9) <> ":"
    FIELDS TERMINATED BY ','
    OPTIONALLY ENCLOSED BY '"'
    (id, start_date DATE(19) "DD-MM-YYYY")
    [oracle@localhost saubhik]$ sqlldr scott/tiger control=test_emp_ctl.ctl
    
    SQL*Loader: Release 11.2.0.1.0 - Production on Tue Jun 2 16:20:22 2015
    
    Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.
    
    Commit point reached - logical record count 4
    [oracle@localhost saubhik]$ 
    

    Audit:

    SQL> SELECT * FROM test;
    
    ID                             START_DAT
    ------------------------------ ---------
    JFDJFUJK                       09-NOV-09
    TRUTIRUT                       09-NOV-09
    
    SQL> 
    

Maybe you are looking for