SQL LOADER-350: Syntax at Line 5

I am receiving the following error when running SQL Loader. i want to load records only that have a value of not equal to 0.00.
here is the .ctl info...
load data
infile 'usr5/telmars/billhist/test2.txt'
append
into table OPS$TELMARS.nonusg_data
when amt <> 0
(Account position (1:40) char,
Circuit position (41:60) char,
Telephone position (61:70) char,
Item position (71:85) char,
Amt position (86:95) ":amt/100",
Qty position (96:98) integer external)
SQL LOADER-350: Syntax at Line 5
Expecting quoted string or hex identifier, found "0"
the field has the following data type in the table called nonusg_data
Amt number(10,2)

did you tried where rather than when??
succes.

Similar Messages

  • SQL*Loader-350: Syntax error at line 5.

    Hi ,iam  new for  using  sql*loader, with minimum  understanding from  the forums,Iam  trying  to load data  from a flat  file (.dat) to oracle database.
    here  is  my  .dat file-------> data_file.dat
    aaaa, mumbai
    bbbb,kolkat
    here is  my  .ctl fle ------->ctrl_file.ctl
    load data 
    infile 'F:\oracle_utils_kiranorcl\KIR_ORA_DIR\emp_data.dat'
    into table  test
    fields terminated by  ","
    ( NAM  varchar2(12),
    PLACE varchar2(8)
    here  is  db_tab_name  structure 
    create table test (nam Varchar2(15),place Varchar2(10));
    SQL> select *  from  test;
    NAM             PLACE
    now.......
    iam  running  the command on  cmd window on  os  level
    F:\app\NANDAN\product\11.2.0\dbhome_1>sqlldr userid=kiranmai/kiranmai@kiranorcl control=F:\oracle_utils_kiranorcl\KIR_ORA_DIR\emp_data.ctl log=F:\oracle_utils_kiranorcl\KIR_ORA_DIR\emp_data.log bad=F:\oracle_utils_kiranorcl\KIR_ORA_DIR\emp_data.bad
    when  i run this  above command ,I get  an  error,
    SQL*Loader-350: Syntax error at line 5.
    Expecting "," or ")", found "varchar2".
    ( NAM varchar2(12),
           ^
    I  tried so many  times by creating  new ctl  files further. But  couldn't  able get  what  is  the  wrong  thing  ????
    Please help me ..
    Thanks

    Instead of:
    fields terminated by  ","
    ( NAM  varchar2(12),
    PLACE varchar2(8)
    try:
    fields terminated by  ","
    ( NAM  char,
    PLACE char

  • SQL*Loader-350: Syntax error at line 1.

    I am getting an systax error saying :
    SQL*Loader-350: Syntax error at line 1.
    Expecting keyword LOAD, found "ï".
    What could be the prob ??

    description of the control file :
    LOAD DATA
    APPEND INTO TABLE TEST_UPDATE
    FIELDS TERMINATED BY "," OPTIONALLY ENCLOSED BY '"'
    TRAILING NULLCOLS
    (STATUS constant 3,
    CID sequence (count),
    SUBJECT_ID constant 0,
    PNO "RTRIM(LTRIM(:PID))",
    FREQ NULLIF VISIT = BLANKS,
    INV "RTRIM(LTRIM(:INV))",
    PNUM NULLIF PAGENUM = BLANKS,
    VDT DATE "DD/MM/YYYY HH24:MI:SS"
    NULLIF VISIT_DATE = BLANKS,
    MKEY "RTRIM(LTRIM(:MASTERKEY))",
    DKEY "RTRIM(LTRIM(:DETAILKEY))")
    I found a sysntax error for this. Plz suggest.

  • SQL*Loader-350: Illegal combination of non-alphanumeric characters

    Hi all,
    how to skip a column in control file.
    i.e.
    I have a table with 10 columns and FAT file contains 11 columns.
    how to skip a last column ?
    and
    I added extra column to Table and I changed the control file too.
    but i am getting error.
    SQL*Loader-350: Syntax error at line 115.
    Illegal combination of non-alphanumeric characters
    thanks in Advance.

    Tom Kyte has an elaborate solution on his page:
    http://osi.oracle.com/~tkyte/SkipCols/index.html
    Or post the table description and the control file, so we can have a look at it.

  • SQL LOADER 350

    Hey guys i have been running this application smoothly, to day for some reasons
    iam gettin this error
    SQL*Loader-350: Syntax error at line 1.
    Expecting keyword LOAD, found "Enter".
    Enter value for 1:
    No body touched the scripts....

    What i have found out is the ctl files is generated by
    set termout off feedback off verify off echo off pagesize 0 heading off linesize 150 trimspool on
    set document off
    Spool /home/oracle/pic/payment_files/rhc_prod/sqlldr_build_controlfile_header.ctl
    SELECT 'LOAD DATA ' || chr(10) ||
    'INFILE ' || chr(39) || '&&1' || chr(39) || chr(10) ||
    'INTO TABLE sl_rhc_admin.rhc_input_file_header ' || chr(10) ||
    'APPEND ' || chr(10) ||
    'FIELDS TERMINATED BY ' || chr(39) || ',' || chr(39) || ' OPTIONALLY ENCLOSED BY '||chr(39)||chr(34)||chr(39)|| chr(10) ||
    'TRAILING NULLCOLS ' || chr(10) ||
    '(file_name ' || chr(10) ||
    ',total_amount ' || chr(10) ||
    ',num_of_records ' || chr(10) ||
    ',file_date ' || chr(10) ||
    ',load_id "rhc_input_file_seq.nextval" ' || chr(10) ||
    ' )' FROM DUAL;
    spool off
    Spool /home/oracle/pic/payment_files/rhc_prod/sqlldr_build_controlfile_detail.ctl
    SELECT 'LOAD DATA ' || chr(10) ||
    'INFILE ' || chr(39) || '&&1' || chr(39) || chr(10) ||
    'INTO TABLE sl_rhc_admin.rhc_input_file ' || chr(10) ||
    'APPEND ' || chr(10) ||
    'FIELDS TERMINATED BY ' || chr(39) || ',' || chr(39) || ' OPTIONALLY ENCLOSED BY '||chr(39)||chr(34)||chr(39)|| chr(10) ||
    'TRAILING NULLCOLS ' || chr(10) ||
    '(spin ' || chr(10) ||
    ',auth_amt ' || chr(10) ||
    ',fund_year ' || chr(10) ||
    ',appl ' || chr(10) ||
    ',load_id "rhc_input_file_seq.currval" ' || chr(10) ||
    ' )' FROM DUAL;
    then the spooled file are used as control file let me show u the part of the script
    ==========================================================
    # Load in files using sqlldr by first creating the control file, then running them for Automated Vertification
    $ORACLE_HOME/bin/sqlplus / as sysdba << EOF
    @$RHC_HOME/sqlldr_build_controlfile.sql ${FILE_NAME}
    EOF
    $ORACLE_HOME/bin/sqlldr sl_rhc_admin/sl_rhc_admin@em control=$RHC_HOME/sqlldr_build_controlfile_header.ctl load=1
    $ORACLE_HOME/bin/sqlldr sl_rhc_admin/sl_rhc_admin@em control=$RHC_HOME/sqlldr_build_controlfile_detail.ctl skip=1 direct=TRUE
    ========================================================
    The above pasted script spool it rersults into sqlldr_build_controlfile_header.ctl and
    sqlldr_build_controlfile_detail.ctl.
    But for some reason it doest not spool the expected results.

  • SQL*Loader-350 Error

    I got a SQL*Loader-350 error due to a FILLER statement in my control file. I have known the cause is Concurrent Manager uses SQL*Loader 8.0.6 and the FILLER option is available from 8.1.7. The e-Business Suite version is 11.5.0.
    May I upgrade SQL*Loader to 8.1.7 or it could generate inconsistences in the suite ?
    I would appreciate your comments.
    César Rengifo

    it depends, upgrading the Oracle Home on an existing Oracle Technology Stack might not be viable option due to dependancies.
    other method i can think of is install the new Oracle home in a different location, write a shell script for the concurrent job, the shell script will set the new environment installed and use the SQL Loader from the New Home to perform the Job.

  • SQL*Loaderの制御ファイルでSQL*Loader-350エラー

    Oracle DB 11gR2 Standard Edition One
    Red Hat Enterprise Linux 6.0
    オフライン
    こんにちは。
    SQL*Loaderにて、データをロードしています。
    データファイルに空白のみの項目があった場合にNULLが入るようにしたいのですが、
    制御ファイルの演算の後にNULLIF ・・・をいれると以下のようなエラーがでてしまいます。
    SQL*Loader-350: 行20に構文エラーがあります。
    "、"または")"ではなくキーワードnullifが見つかりました。
    , time "TO_DSINTERVAL('0 00:' || :time) NULLIF time=BLANKS
                          ^
    time列のデータ型は、INTERVAL DAY TO SECOND(1)です。
    制御ファイルでは以下のように記述しています。
    INTO TABLE     test.t_test
    REPLACE
    FIELDS TERMINATED BY ','
    TRAILING NULLCOLS
    ( test_id
    time "TO_DSINTERVAL('0 00:' || :time) NULLIF time=BLANKS )
    NULLIF・・・を"TO_INTERVAL・・・"の前に書くと「間隔が無効です。」というエラーになります。
    このような場合、どのように記述したらよいでしょうか?
    また、この方法以外に空白のみの項目があった場合NULLが入るようにする方法が
    ありましたら、教えていただければと思います。
    よろしくお願い致します。

    ご回答ありがとうございます。
    time "DECODE(:time , ' ' , TO_DSINTERVAL('0 00:' || :time))"
    で、正常にロードすることができました!
    time "NVL2(TRIM(:time),TO_DSINTERVAL('0 00:' || :time),NULL)"
    も試してみたのですが、ORA-01867:間隔が無効です。というエラーがでました。
    間隔とは・・・?
    今回したいことは、おかげさまで解決しましたので、このエラーについては別の機会に調べてみます。
    ありがとうございました。

  • SQL*Loader data on different lines

    I have to load a file with data on the fisrt line that I have to load each time I load data on other line.
    my data look like this :
    a1 somedata
    p1 somedata
    p2 somedata
    p1 somedata
    And I have to load for each row of my table data that are on line a1,p1 and p2
    Is there a way to do this ?
    p2 xxxx

    If you use fixed with (skip those positions)
    col1 (1-10) char,
    col2 (11-xx)
    otherwise
    col1,
    col2 "substr(:col2,10)"
    but directpath does not work
    Message was edited by:
    Reega
    Message was edited by:
    Reega

  • Sql loader syntax issue

    SQL*Loader: Release 11.1.0.7.0 - Production on Thu Mar 18 07:21:37 2010
    Copyright (c) 1982, 2007, Oracle. All rights reserved.
    SQL*Loader-350: Syntax error at line 1.
    Expecting keyword LOAD, found "ÐÏ".
    ÐÏࡱá
    ^
    My sqlldr file looks like this:
    sqlldr control=C:\data\ctl\ss.ctl log=C:\data\logs\ss.log userid=User/Password errors=999 discard=C:\data\discard\ss.dis
    control file looks like this:
    LOAD DATA
    INFILE 'C:\data\SS.TXT' "STR '\r\n'"
    REPLACE
    INTO TABLE SS
    FIELDS TERMINATED BY ';'
    TRAILING NULLCOLS
    ACCOUNT_NBR CHAR,
    ADDR1 CHAR,
    ADDR2 CHAR,
    ADDR3 CHAR,
    ADDR4 CHAR,
    CITY CHAR,
    STATE CHAR,
    ZIPCODE CHAR ,
    more columns all of the are the same syntax column name and char
    I can load this table using the enterprise manager but when using the sqlldr its not working.
    Anything stand out?
    Edited by: mlojan on Mar 18, 2010 5:33 AM

    Only thing I can think of is there is some character set issue between the control file and the operating syste/oracle server.
    You did you create the control file using a text based editor such as notepad or wordpad didn't you? You haven't used something like MS Word?

  • Loading two tables at same time with SQL Loader

    I have two tables I would like to populate from a file C:\my_data_file.txt.
    Many of the columns I am loading into both tables but there are a handful of columns I do not want. The first column I do not want for either table. My problem is how I can direct SQL Loader to go back to the first column and skip over it. I had tried using POSITION(1) and FILLER for the first column while loading the second table but I got THE following error message:
    SQL*Loader-350: Syntax error at line 65
    Expecting "," or ")" found keyword Filler
    col_a Poistion(1) FILLER INTEGER EXTERNALMy control file looks like the following:
    LOAD DATA
    INFILE 'C:\my_data_file.txt'
    BADFILE 'C:\my_data_file.txt'
    DISCARDFILE 'C:\my_data_file.txt'
    TRUNCATE INTO TABLE table_one
    WHEN (specific conditions)
    FIELDS TERMINATED BY ' '
    TRAILING NULLCOLS
    col_a FILLER INTEGER EXTERNAL,
    col_b INTEGER EXTERNAL,
    col_g FILLER CHAR,
    col_h CHAR,
    col_date DATE "yyyy-mm-dd"
    INTO TABLE table_two
    WHEN (specific conditions)
    FIELDS TERMINATED BY ' '
    TRAILING NULLCOLS
    col_a POSITION(1) FILLER INTEGER EXTERNAL,
    col_b INTEGER EXTERNAL,
    col_g FILLER CHAR,
    col_h CHAR,
    col_date DATE "yyyy-mm-dd"
    )

    Try adapting this for your scenario.
    tables for the test
    create table test1 ( fld1 varchar2(20), fld2 integer, fld3 varchar2(20) );
    create table test2 ( fld1 varchar2(20), fld2 integer, fld3 varchar2(20) );
    control file
    LOAD DATA
    INFILE "test.txt"
    INTO TABLE user.test1 TRUNCATE
    WHEN RECID = '1'
    FIELDS TERMINATED BY ' '
    recid filler integer external,
    fld1 char,
    fld2 integer external,
    fld3 char
    INTO TABLE user.test2 TRUNCATE
    WHEN RECID <> '1'
    FIELDS TERMINATED BY ' '
    recid filler position(1) integer external,
    fld1 char,
    fld2 integer external,
    fld3 char
    data for loading [text.txt]
    1 AAAAA 11111 IIIII
    2 BBBBB 22222 JJJJJ
    1 CCCCC 33333 KKKKK
    2 DDDDD 44444 LLLLL
    1 EEEEE 55555 MMMMM
    2 FFFFF 66666 NNNNN
    1 GGGGG 77777 OOOOO
    2 HHHHH 88888 PPPPP
    HTH
    RK

  • Error while loading data using SQL*Loader

    Hi All,
    I am now in process of loading data from MS SQL to Oracle Database.
    I am getting the data in excel format and i will convert them into csv.
    Upto converting everything is working fine.
    In MS SQL, table columns are case sensitive.
    So i created those tables in oracle db as same.
    There is one column "MaxNumber" which is of type float(49).
    The column is case sensitive.
    in the control file first i given as
    "MaxNumber" "TO_NUMBER(:MaxNumber,'99,999.99')"
    After executing the SQL*Loader i am getting the error
    SQL*Loader-466: Column MAXNUMBER does not exist in table TABLEONE.
    I changed the control file entry as
    "MaxNumber" "TO_NUMBER(:"MaxNumber",'99,999.99')"
    After the execution i got the error
    SQL*Loader-350: Syntax error at line 13.
    Expecting "," or ")", found "MaxDiscount".
    "MaxNumber" "TO_NUMBER(:"MaxNumber",'99,999.99')"
    Please Guide me in this issue.
    Regards
    Salih KM

    What I'm saying is, verify the column name. Dont post if not possible.
    Example follows, with one table intentionally "hidden".
    SQL> create table "tEsT" ("MaxNumber" float, "MaxnumbeR" number);
    SQL> select table_name,column_name from user_tab_columns where table_name like 't%';
    TABLE_NAME                     COLUMN_NAME
    tEsT                           MaxNumber
    tEsT                           MaxnumbeR
    teST                           iD
    teST                           MaxNumberHth,
    Fredrik

  • Sql loader issue

    Hi I am trying to use decode function with sql loader.. and gating error
    SQL*Loader-350: Syntax error at line 8.
    Expecting "," or ")", found keyword nullif.
    code(:error_type,'Banned SBI',:error_type)" NULLIF error_type=BLANKS,
    My ctl file is below...
    LOAD DATA
    INFILE 'abc.dat'
    BADFILE 'abc.bad'
    INTO TABLE xyz_tmp
    FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
    TRAILING NULLCOLS
    (record_id INTEGER EXTERNAL(4) NULLIF record_id=BLANKS,
    error_type CHAR(100) "decode(:error_type,'Banned',:error_type)" NULLIF error_type=BLANKS,
    error_subtype CHAR(100) NULLIF error_subtype=BLANKS,
    number_of_errors INTEGER EXTERNAL(3) NULLIF number_of_errors=BLANKS,
    sbi_number INTEGER EXTERNAL(8) NULLIF sbi_number=BLANKS,
    team_name CHAR(60) NULLIF team_name=BLANKS
    Could any one help me to correct it please.

    Hi,
    Try changeing the line with decode to,
    error_type CHAR(100) "decode(trim(:error_type),NULL, NULL,'Banned',:error_type)" ,
    Cheers

  • SQL*LOADER and decode

    I'm setting up a sql*loader script and trying to use the decode function as referred to in 'Applying SQL Operators to Fields' I'm getting an error message ' Token longer than max allowable length of 258 chars'. Is there a limit to the size of the decode statement within sql*loader - or is it better to use a table trigger to handle this on insert? I ran the decode statement as a select through SQL*Plus and it works okay there. Oracle 8.0 Utilities shows example of decode in Ch. 5, but Oracle 9i Utilities Ch. 6 does not. Has anyone done this and what's the impact on performance of the load if I can get it to work? See my example below:
    LOAD DATA
    INFILE 'e2e_prod_cust_profile.csv'
    APPEND
    INTO TABLE APPS.RA_CUSTOMER_PROFILES_INTERFACE
    FIELDS TERMINATED BY "," OPTIONALLY ENCLOSED BY '"'
    (Insert_update_flag CHAR(1),
    Orig_system_customer_ref CHAR(240),
    customer_profile_class_name CHAR(30) NULLIF customer_profile_class=BLANKS
    "decode(customer_profile_class_name,
    'NORTHLAND Default','(MIA) Default',
    'NORTHLAND Non Consolidated','(MIA) Non Cons',
    'NORTHLAND Consolidated A','(MIA) Cons A',
    'NORTHLAND Consolidated B','(MIA) Cons B',
    'NORTHLAND Consolidated C','(MIA) Cons C',
    'NORTHLAND Consolidated D','(MIA) Cons D',
    'NORTHLAND Cons A NonZS','(MIA) Cons A NonZS',
    'NORTHLAND Cons B NonZS','(MIA) Cons B NonZS',
    'NORTHLAND Cons C NonZS','(MIA) Cons C NonZS',
    'NORTHLAND Cons D NonZS','(MIA) Cons D NonZS',
    'NORTHLAND International Billing','(MIA) International Billing',
    customer_profile_class_name)",
    credit_hold CHAR(1),
    overall_credit_limit INTERGER EXTERNAL,
    "e2e_cust_profile.ctl" 49 lines, 1855 characters
    SQL*Loader-350: Syntax error at line 15.
    Token longer than max allowable length of 258 chars
    'NORTHLAND Consolidated D','(MIA) Cons D',
    ^

    Your controlfile is incomplete and has some typos, but you could try something like:
    create or replace function decode_profile_class_name (p_longname IN VARCHAR2)
    return VARCHAR2
    is
    begin
      CASE p_longname
        WHEN 'NORTHLAND Default'               THEN RETURN '(MIA) Default';
        WHEN 'NORTHLAND Non Consolidated'      THEN RETURN '(MIA) Non Cons';
        WHEN 'NORTHLAND Consolidated A'        THEN RETURN '(MIA) Cons A';
        WHEN 'NORTHLAND Consolidated B'        THEN RETURN '(MIA) Cons B';
        WHEN 'NORTHLAND Consolidated C'        THEN RETURN '(MIA) Cons C';
        WHEN 'NORTHLAND Consolidated D'        THEN RETURN '(MIA) Cons D';
        WHEN 'NORTHLAND Cons A NonZS'          THEN RETURN '(MIA) Cons A NonZS';
        WHEN 'NORTHLAND Cons B NonZS'          THEN RETURN '(MIA) Cons B NonZS';
        WHEN 'NORTHLAND Cons C NonZS'          THEN RETURN '(MIA) Cons C NonZS';
        WHEN 'NORTHLAND Cons D NonZS'          THEN RETURN '(MIA) Cons D NonZS';
        WHEN 'NORTHLAND International Billing' THEN RETURN '(MIA) International Billing';
        ELSE RETURN p_longname;
      END CASE;
    end;
    LOAD DATA
    INFILE 'e2e_prod_cust_profile.csv'
    APPEND
    INTO TABLE APPS.RA_CUSTOMER_PROFILES_INTERFACE
    FIELDS TERMINATED BY "," OPTIONALLY ENCLOSED BY '"'
    Insert_update_flag          CHAR(1),
    Orig_system_customer_ref    CHAR(240),
    customer_profile_class_name CHAR(30) NULLIF customer_profile_class=BLANKS "decode_profile_class_name(:customer_profile_class_name)"
    credit_hold                 CHAR(1),
    overall_credit_limit        INTEGER EXTERNAL

  • URGENT: Problems Loading files with SQL Loader into a BLOB column

    Hi friends,
    I read a lot about how to load files into blob columns, but I found errors that I can't solve.
    I've read several notes in these forums, ine of them:
    sql loader: loading external file into blob
    and tried the solutions but without good results.
    Here are some of my tests:
    With this .ctl:
    LOAD DATA
    INFILE *
    INTO TABLE mytable
    REPLACE
    FIELDS TERMINATED BY ','
    number1 INTEGER EXTERNAL,
    cad1 CHAR(250),
    image1 LOBFILE(cad1) TERMINATED BY EOF
    BEGINDATA
    1153,/opt/oracle/appl/myapp/1.0.0/img/1153.JPG,
    the error when I execute sqlldr is:
    SQL*Loader-350: Syntax error at line 9.
    Expecting "," or ")", found "LOBFILE".
    image1 LOBFILE(cad1) TERMINATED BY EOF
    ^
    What problem exists with LOBFILE ??
    (mytable of course has number1 as a NUMBER, cad1 as VARCHAR2(250) and image1 as BLOB
    I tried too with :
    LOAD DATA
    INFILE sample.dat
    INTO TABLE mytable
    FIELDS TERMINATED BY ','
    (cad1 CHAR(3),
    cad2 FILLER CHAR(30),
    image1 BFILE(CONSTANT "/opt/oracle/appl/myapp/1.0.0/img/", cad2))
    sample.dat is:
    1153,1153.JPEG,
    and error is:
    SQL*Loader-350: Syntax error at line 6.
    Expecting "," or ")", found "FILLER".
    cad2 FILLER CHAR(30),
    ^
    I tried too with a procedure, but without results...
    Any idea about this error messages?
    Thanks a lot.
    Jose L.

    > So you think that if one person put an "urgent" in the subject is screwing the problems of
    other people?
    Absolutely. As you are telling them "My posting is more important than yours and deserve faster attention and resolution than yours!".
    So what could a typical response be? Someone telling you that his posting is more important by using the phrase "VERY URGENT!". And the next poster may decide that, no, his problem is evern more import - and use "EXTREMELY URGENT!!" as the subject. And the next one then raises the stakes by claiming his problem is "CODE RED! CRITICAL. DEFCON 4. URGENT!!!!".
    Stupid, isn't it? As stupid as your instance that there is nothing wrong with your pitiful clamoring for attention to your problem by saying it is urgent.
    What does the RFC's say about a meaningful title/subject in a public forum? I trust that you know what a RFC is? After all, you claim to have used public forums on the Internet for some years now..
    The RFC on "public forums" is called The Usenet Article Format. This is what it has to say about the SUBJECT of a public posting:
    =
    The "Subject" line (formerly "Title") tells what the message is about. It should be suggestive enough of the contents of the message to enable a reader to make a decision whether to read the message based on the subject alone. If the message is submitted in response to another message (e.g., is a follow-up) the default subject should begin with the four characters "Re: ", and the "References" line is required. For follow-ups, the use of the "Summary" line is encouraged.
    =
    ([url http://www.cs.tut.fi/~jkorpela/rfc/1036.html]RFC 1036, the Usenet article format)
    Or how about [url http://www.cs.tut.fi/~jkorpela/usenet/dont.html]The seven don'ts of Usenet?
    Point 7 of the Don'ts:
    Don't try to catch attention by typing something foolish like "PLEASE HELP ME!!!! URGENT!!! I NEED YOUR HELP!!!" into the Subject line. Instead, type something informative (using normal mixed case!) that describes the subject matter.
    Please tell me that you are not too thick to understand the basic principles of netiquette, or to argue with the RFCs that governs the very fabric of the Internet.
    As for when I have an "urgent" problem? In my "real" work? I take it up with Oracle Support on Metalink by filing an iTAR/SR. As any non-idiot should do with a real-life Oracle crisis problem.
    I do not barge into a public forum like you do, jump up and down, and demand quick attention by claiming that my problem is more important and more urgent and more deserving of attention that other people's problem in the very same forum.

  • Using SQL LOADER in Oracle to import CSV file

    I'm pretty new to databases and programming. Im not very good with the computer lingo so stick with me. I have a csv file that I'm trying to load into my oracle database. It contains account information such as name telephone number service dates ect. I've installed Oracle 11g Release 2. This is what I've done so far step by step..
    1) Ran SQL Loader
    I created a new table with the columns that I needed. For example
    create table Billing ( TAP_ID char(10), ACCT_NUM char(10), MR_ID char(10), HOUSE_NUM char(10), STREET char(30), NAME char(50)
    2) It prompted me that the Table was created. Next I created a control file for the data in notepad which was located in the same directory as my Billing table and has a .ctl extension. GIS.csv is the file im getting the data from and is also in the same directory and named it Billing.ctl, which looked like so..
    load data
    infile GIS.csv
    into table Billing
    fields terminated by ','
    (TAP_ID, ACCT_NUM, MR_ID, HOUSE_NUM, STREET, NAME)
    3) Run sqlldr from command line to use the control file
    sqlldr myusername/mypassword Billing.ctl
    This is where I am stuck. Ive seen video tutorials of exactly what I'm doing but I get this error:
    SQL*Loader-350: Syntax error at line 1.
    Expecting keyword LOAD, found "SERV TAP ID". "SERV TAP ID","ACCT NUMBER","MTR ID","SERV HOUSE","SERV STREET","SERV ^'
    I dont understand why its coming up with that error. My billing.ctl has a load.
    load data
    infile GIS.csv
    into table Billing
    fields terminated by ','
    (TAP_ID, ACCT_NUM, MTR_ID, SERV_HOUSE, SERV_STREET, SERV_TOWN, BIL_NAME, MTR_DATE_SET, BIL_PHONE, MTR_SIZE, BILL_CYCLE, MTR_RMT_ID)
    Any thoughts?

    938115 wrote:
    I also got this text file after the command was executed along with the GIS.bad file
    SQL*Loader: Release 11.2.0.1.0 - Production on Fri Jun 1 09:56:52 2012
    Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
    Control File: bill.ctl
    Data File: GIS.csv
    Bad File: GIS.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
    I have thousands of records in this file and only 64 of them updated.How many record were in the table before and after? I doubt the difference is 64, unless you have exactly 64 rows but you said thousands. I believe you are probably misinterpreting the log file. can you share the full log file? As a test, create a empty table, use the same script and load same data file in this empty table. Once loading is complete, check if it has 64 rows or more. I believe what log file is saying, it is 'commiting after every 64 rows', not 'stopping after loading 64 rows'.
    So, unless you show us the log file there is no way to be certain, feel free to mask confidential info, at-least top 15 and bottom 15 lines ?

Maybe you are looking for