Sql*loader 11g - Error ORA-12899

Hi All,
I'm using Sqlload for inserti into a 11g db some csv file from db2.
My server is a Linux o.s. with Oracle 11.2.0.1.0 - 64bit.
I receive this error ORA-12899: Value too large for column on all file I try to load.
NLS for my db is:
SQL> select parameter, value from nls_database_parameters where parameter like '%CHARACTERSET%';
PARAMETER VALUE
NLS_CHARACTERSET AL32UTF8
NLS_NCHAR_CHARACTERSET UTF8
Have you any idea?
Thanks very much for help
Regards
Giovanni

In internet I found this short message:
“AL32UTF8 is a multi-byte characterset,that means some characters are stored in more than 1 character, that's true for these special characters.
If you have same table definitions in both databases you likely face error ORA-12899.
This metalink note discusses this problem, it's also applicable to sqlloader:
Import reports "ORA-12899: Value too large for column" when using BYTE semantic
Doc ID: Note:563893.1”
By metalink, I can see the Note linked to a one Oracle Internal Bug for Oracle 11g.....
I'm waiting you suggestion... thanks very much in advance.
Regards.
Giovanni

Similar Messages

  • Re: Sql*loader 11g - Error ORA-12899

    My Bad file has first 2 records like this:
    MEMB_NUMBER,ID_NUMBER,ASSIGNED_MEMB_NUMBER,ASSOC_AMT,ASSOC_TYPE,DATE_ADDED,DATE_MODIFIED,OPERATOR_NAME,USER_GROUP,LOCATION_ID,
    0000000107,0000828633, ,1.5,J,22-FEB-02,12-JUN-02,MSUM080_MEMB_CONV,00,,
    0000002301,0000800007, ,297.5,J,03-AUG-00,12-JUN-02,MSUM080_MEMB_CONV,00,,
    My Log file says:
    Record 1: Rejected - Error on table OWBREP.MEMB_ENTITY, column ID_NUMBER.
    ORA-12899: value too large for column "OWBREP"."MEMB_ENTITY"."ID_NUMBER" (actual: 20, maximum: 10)
    Record 2: Rejected - Error on table OWBREP.MEMB_ENTITY, column ASSOC_AMT.
    ORA-01722: invalid number
    Decription of target table:
    memb_number
    varchar2(10 byte)
    y
    id_number
    varchar2(10 byte)
    y
    assigned_memb_number
    varchar2(15 byte)
    y
    assoc_amt
    number(14,2)
    y
    assoc_type
    char(1 byte)
    y
    date_added
    date
    y
    date_modified
    date
    y
    operator_name
    varchar2(32 byte)
    y
    user_group
    varchar2(2 byte)
    y
    location_id
    number
    y
    Can you please tell me why the sqlldr is throwing error?The data seems correct to me.

    Hi,
    Now again I am facing problem..
    I mean my log file throws error
    "Record 2: Rejected - Error on table OWBREP.ADDRESS, column USER_GROUP.
    ORA-12899: value too large for column "OWBREP"."ADDRESS"."USER_GROUP" (actual: 27, maximum: 2)"
    and my record when I see in bad file is:
    "0000810722,3,00000000,00000000,H,A,Y, , , , , ,1777 Hull Road, , , ,Mason,MI,48854,   ,            , , ,12-MAR-02,N,0,,, ,00000000,0,FAC, , ,N,N, ,1777 Hull Road,Mason, MI 48854, , , , , , , ,12-MAR-02,10-FEB-05,FIX075_ADDR_VERSION_UPGRADE,00,,"
    I have checked my control file and the table structure .They are same.
    The problem is that I have an address field before this user_group column which has value like "Mason,MI,48854" .So sql loader is reading these as separate columns because of comma.That is why the order is getting messed up and I am getting this error.Can you suggest what should I do resolve this kind of error?

  • SQL   Loader and Error ORA-01847/ORA-01839

    Hi,
    While using the direct loading in SQL-LOADER when we get the ORA-01847/ORA-01839 all the other records are getting errorred out. It goes fine with the conventional loading.
    Should I use some parameters or anything to make sure that all the other records are not rejected when we get the ORA-01847/ORA-01839 error while going with the DIRECT loading.
    Thanks
    Jibin

    In internet I found this short message:
    “AL32UTF8 is a multi-byte characterset,that means some characters are stored in more than 1 character, that's true for these special characters.
    If you have same table definitions in both databases you likely face error ORA-12899.
    This metalink note discusses this problem, it's also applicable to sqlloader:
    Import reports "ORA-12899: Value too large for column" when using BYTE semantic
    Doc ID: Note:563893.1”
    By metalink, I can see the Note linked to a one Oracle Internal Bug for Oracle 11g.....
    I'm waiting you suggestion... thanks very much in advance.
    Regards.
    Giovanni

  • Direct Path SQL Loader get error ORA-01555

    Hi All,
    11.2.0.1 DB
    Has anyone here used sqlloader direct path option?
    Is there special setting I need for the Undo TS?
    I am testing my sqlloader direct path but I got error : ORA-01555: snapshot too old: rollback segment number 10 with name "_SYSSMU10$" too small
    I am only testing 100 records and I shutdown the database. And I am only the one using it. :(
    Does dropping the Undo TS and creating new one help resolve my issue?
    Thanks a lot,
    Kinz
    Edited by: KinsaKaUy? on 07-Nov-2012 03:33

    I drop my UNDOTS1 and recreate it to resolve if there are framentation in the TS itself , but to no avail, the same error persist :(
    Record 1: Rejected - Error on table EMPLOYEE.
    ORA-00604: error occurred at recursive SQL level 1
    ORA-01555: snapshot too old: rollback segment number with name "" too small
    SYSTEM                         ONLINE
    _SYSSMU87_2780657351$          ONLINE
    _SYSSMU88_120427686$           ONLINE
    _SYSSMU89_1588874193$          ONLINE
    _SYSSMU90_2571046414$          ONLINE
    _SYSSMU91_1803654754$          ONLINE
    _SYSSMU92_2477693864$          ONLINE
    _SYSSMU93_1908993412$          ONLINE
    _SYSSMU94_985867735$           ONLINE
    _SYSSMU95_4165893730$          ONLINE
    _SYSSMU96_1502488804$          ONLINE
    _SYSSMU97_3533816217$          ONLINE
    _SYSSMU98_3954380786$          ONLINE
    _SYSSMU99_1314687851$          ONLINE
    _SYSSMU100_3542148152$         ONLINE
    _SYSSMU101_1249002234$         ONLINE
    _SYSSMU102_1520886654$         ONLINE
    _SYSSMU103_2785416951$         ONLINE
    _SYSSMU104_1530388055$         ONLINE
    _SYSSMU105_1995830672$         ONLINE
    _SYSSMU106_4584952$            ONLINE
    _SYSSMU107_1177768351$         ONLINE
    _SYSSMU108_3896986945$         ONLINE
    _SYSSMU109_2576315174$         ONLINE
    _SYSSMU110_2786589320$         ONLINE
    _SYSSMU111_1195961439$         ONLINE
    _SYSSMU112_2612035115$         ONLINE
    _SYSSMU113_1697198479$         ONLINE
    _SYSSMU114_3939726644$         ONLINE
    _SYSSMU115_467875145$          ONLINE
    _SYSSMU116_2826382876$         ONLINE
    _SYSSMU117_3650068864$         ONLINE
    _SYSSMU118_92260707$           ONLINE
    _SYSSMU119_2322108460$         ONLINE
    _SYSSMU120_2583709550$         ONLINE
    _SYSSMU121_1279604730$         ONLINE
    _SYSSMU122_2128414833$         ONLINE
    _SYSSMU123_1365970622$         ONLINE
    _SYSSMU124_1855929876$         ONLINE
    _SYSSMU125_1511578664$         ONLINE
    _SYSSMU126_3219352797$         ONLINE
    _SYSSMU127_2412556110$         ONLINE
    _SYSSMU128_2102547636$         ONLINE
    _SYSSMU129_447164998$          ONLINE
    _SYSSMU130_3851265156$         ONLINE
    _SYSSMU131_3046352603$         ONLINE
    _SYSSMU132_2987406815$         ONLINE
    _SYSSMU133_983809304$          ONLINE
    _SYSSMU134_928979873$          ONLINE
    _SYSSMU135_3248183819$         ONLINE
    _SYSSMU136_811112856$          ONLINE
    _SYSSMU137_1958351427$         ONLINE
    _SYSSMU138_2222543$            ONLINE
    _SYSSMU139_3962620689$         ONLINE
    _SYSSMU140_2711665463$         ONLINE
    _SYSSMU141_3724825495$         ONLINE
    _SYSSMU142_1818253355$         ONLINE
    _SYSSMU143_1370485269$         ONLINE
    _SYSSMU144_2442636386$         ONLINE
    59 rows selected.
    SQL>Is there something missing in my sqlloader parameter? but if I use "ordinary" path it will load successfully. But not with "direct" path :( Any ideas please

  • SQL Error: ORA-12899: value too large for column

    Hi,
    I'm trying to understand the above error. It occurs when we are migrating data from one oracle database to another:
    Error report:
    SQL Error: ORA-12899: value too large for column "USER_XYZ"."TAB_XYZ"."COL_XYZ" (actual: 10, maximum: 8)
    12899. 00000 - "value too large for column %s (actual: %s, maximum: %s)"
    *Cause:    An attempt was made to insert or update a column with a value
    which is too wide for the width of the destination column.
    The name of the column is given, along with the actual width
    of the value, and the maximum allowed width of the column.
    Note that widths are reported in characters if character length
    semantics are in effect for the column, otherwise widths are
    reported in bytes.
    *Action:   Examine the SQL statement for correctness.  Check source
    and destination column data types.
    Either make the destination column wider, or use a subset
    of the source column (i.e. use substring).
    The source database runs - Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production
    The target database runs - Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
    The source and target table are identical and the column definitions are exactly the same. The column we get the error on is of CHAR(8). To migrate the data we use either a dblink or oracle datapump, both result in the same error. The data in the column is a fixed length string of 8 characters.
    To resolve the error the column "COL_XYZ" gets widened by:
    alter table TAB_XYZ modify (COL_XYZ varchar2(10));
    -alter table TAB_XYZ succeeded.
    We now move the data from the source into the target table without problem and then run:
    select max(length(COL_XYZ)) from TAB_XYZ;
    -8
    So the maximal string length for this column is 8 characters. To reduce the column width back to its original 8, we then run:
    alter table TAB_XYZ modify (COL_XYZ varchar2(8));
    -Error report:
    SQL Error: ORA-01441: cannot decrease column length because some value is too big
    01441. 00000 - "cannot decrease column length because some value is too big"
    *Cause:   
    *Action:
    So we leave the column width at 10, but the curious thing is - once we have the data in the target table, we can then truncate the same table at source (ie. get rid of all the data) and move the data back in the original table (with COL_XYZ set at CHAR(8)) - without any issue.
    My guess the error has something to do with the storage on the target database, but I would like to understand why. If anybody has an idea or suggestion what to look for - much appreciated.
    Cheers.

    843217 wrote:
    Note that widths are reported in characters if character length
    semantics are in effect for the column, otherwise widths are
    reported in bytes.You are looking at character lengths vs byte lengths.
    The data in the column is a fixed length string of 8 characters.
    select max(length(COL_XYZ)) from TAB_XYZ;
    -8
    So the maximal string length for this column is 8 characters. To reduce the column width back to its original 8, we then run:
    alter table TAB_XYZ modify (COL_XYZ varchar2(8));varchar2(8 byte) or varchar2(8 char)?
    Use SQL Reference for datatype specification, length function, etc.
    For more info, reference {forum:id=50} forum on the topic. And of course, the Globalization support guide.

  • Replicat error: ORA-12899: value too large for column ...

    Hi,
    In our system Source and Target are on the same physical server and in the same Oracle instance. Just different schemes.
    Tables on the target were created as 'create table ... as select * from ... source_table', so they have a similar structure. Table names are also similar.
    I started replicat, it worked fine for several hours, but when I inserted Chinese symbols into the source table I got an error:
    WARNING OGG-00869 Oracle GoldenGate Delivery for Oracle, OGGEX1.prm: OCI Error ORA-12899: value too large for column "MY_TARGET_SCHEMA"."TABLE1"."*FIRSTNAME*" (actual: 93, maximum: 40) (status = 12899), SQL <INSERT INTO "MY_TARGET_SCHEMA"."TABLE1" ("USERID","USERNAME","FIRSTNAME","LASTNAME",....>.
    FIRSTNAME is Varchar2(40 char) field.
    I suppose the problem probably is our database is running with NLS_LENGTH_SEMANTICS='CHAR'
    I've double checked tables structure on the target - it's identical with the source.
    I also tried to manually insert this record into the target table using 'insert into ... select * from ... ' statement - it works. The problem seems to be in the replicat.
    How to fix this error?
    Thanks in advance!
    Oracle GoldenGate version: 11.1.1.1
    Oracle Database version: 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
    NLS_LANG: AMERICAN_AMERICA.AL32UTF8
    NLS_LENGTH_SEMANTICS='CHAR'
    Edited by: DeniK on Jun 20, 2012 11:49 PM
    Edited by: DeniK on Jun 23, 2012 12:05 PM
    Edited by: DeniK on Jun 25, 2012 1:55 PM

    I've created the definition files and compared them. They are absolutely identical, apart from source and target schema names:
    Source definition file:
    Definition for table MY_SOURCE_SCHEMA.TABLE1
    Record length: 1632
    Syskey: 0
    Columns: 30
    USERID 134 11 0 0 0 1 0 8 8 8 0 0 0 0 1 0 1 3
    USERNAME 64 80 12 0 0 1 0 80 80 0 0 0 0 0 1 0 0 0
    FIRSTNAME 64 160 98 0 0 1 0 160 160 0 0 0 0 0 1 0 0 0
    LASTNAME 64 160 264 0 0 1 0 160 160 0 0 0 0 0 1 0 0 0
    PASSWORD 64 160 430 0 0 1 0 160 160 0 0 0 0 0 1 0 0 0
    TITLE 64 160 596 0 0 1 0 160 160 0 0 0 0 0 1 0 0 0
    Target definition file:
    Definition for table MY_TAEGET_SCHEMA.TABLE1
    Record length: 1632
    Syskey: 0
    Columns: 30
    USERID 134 11 0 0 0 1 0 8 8 8 0 0 0 0 1 0 1 3
    USERNAME 64 80 12 0 0 1 0 80 80 0 0 0 0 0 1 0 0 0
    FIRSTNAME 64 160 98 0 0 1 0 160 160 0 0 0 0 0 1 0 0 0
    LASTNAME 64 160 264 0 0 1 0 160 160 0 0 0 0 0 1 0 0 0
    PASSWORD 64 160 430 0 0 1 0 160 160 0 0 0 0 0 1 0 0 0
    TITLE 64 160 596 0 0 1 0 160 160 0 0 0 0 0 1 0 0 0
    Edited by: DeniK on Jun 25, 2012 1:56 PM
    Edited by: DeniK on Jun 25, 2012 1:57 PM

  • SQL*Loader-951: Error calling once/load initialization

    Dear all,
    11g on solaris 10.
    Dear all,
    When loading data using the below :
    sqlldr username/password@db control=data.ctl direct=true errors=10000 readsize=1048576 log=databill.log
    data loading successful.
    but when am speeding up the same and trying to load as below :
    sqlldr username/password@db1 control=databill.ctl direct=true errors=10000 Parallel=true bindsize= 5048576 multithreading=true log=databill.log
    SQL*Loader-951: Error calling once/load initialization
    ORA-26002: Table username.table has index defined upon it.
    If I drop index, and run the same it works fine.. is there way I can speed up the insert (append) using the above
    sqlldr username/password@db1 control=databill.ctl direct=true errors=10000 Parallel=true bindsize= 5048576 multithreading=true log=databill.log
    control file :
    UNRECOVERABLE
    LOAD DATA
    INFILE "databill.dat" "str X'0c'"
    BADFILE "databill.bad"
    DISCARDFILE "databill.dis"
    APPEND
    PRESERVE BLANKS
    INTO TABLE username.databill_TEST
    FIELDS TERMINATED BY X'07' TRAILING NULLCOLS
    Thanks
    Kai

    Thanks ,
    when using ,
    sqlldr username/password@db1 control=databill.ctl direct=true errors=10000 Parallel=true readsize=1048576 bindsize= 5048576 multithreading=true log=databill.log
      12048217 Rows 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.
      Date cache:
       Max Size:      1000
       Entries :       424
       Hits    :  81540372
       Misses  :         0
    Bind array size not used in direct path.
    Column array  rows :    5000
    Stream buffer bytes:  256000
    Read   buffer bytes: 1048576
    Total logical records skipped:          0
    Total logical records read:      12048217
    Total logical records rejected:         0
    Total logical records discarded:        0
    Total stream buffers loaded by SQL*Loader main thread:     3767
    Total stream buffers loaded by SQL*Loader load thread:    11300
    Run began on Thu Dec 17 19:36:01 2009
    Run ended on Thu Dec 17 19:42:16 2009
    Elapsed time was:     00:06:14.25
    CPU time was:         00:02:29.55when using
    sqlldr username/password@db control=data.ctl direct=true errors=10000 readsize=1048576 log=databill.log
      12048217 Rows 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.
      Date cache:
       Max Size:      1000
       Entries :       424
       Hits    :  81540372
       Misses  :         0
    Bind array size not used in direct path.
    Column array  rows :    5000
    Stream buffer bytes:  256000
    Read   buffer bytes: 1048576
    Total logical records skipped:          0
    Total logical records read:      12048217
    Total logical records rejected:         0
    Total logical records discarded:        0
    Total stream buffers loaded by SQL*Loader main thread:     3767
    Total stream buffers loaded by SQL*Loader load thread:    11300
    Run began on Thu Dec 17 04:29:05 2009
    Run ended on Thu Dec 17 04:37:04 2009
    Elapsed time was:     00:07:58.95
    CPU time was:         00:03:04.94How can I acheive maxium loading performance, what do I have to add to this :
    sqlldr username/password@db1 control=databill.ctl direct=true errors=10000 Parallel=true readsize=1048576 bindsize= 5048576 multithreading=true log=databill.log
    Please guide
    Kai

  • SQL*Loader-925: Error while parsing a cursor (via ocisq)

    Receiving the following error message when trying to use SQLLoader (on NT) >>>
    SQL*Loader-925: Error while parsing a cursor
    (via ocisq)
    ORA-00942: table or view does not exist
    Trying to use the application for the first time, logon using userid for which sqlplus operates, and the table does exist under the user schema, as owner.
    ctl and dat file are correct. Log file gives me no further detail of the errors.
    Are there any configuration settings or something required for this app?
    Thanks

    Thanks Warren. I was concentrating more on the first line of the error.
    You are right. The issue was of insufficient privileges. The table did not have all the necessary grants provided.

  • I am getting error "ORA-12899: value too large for column".

    I am getting error "ORA-12899: value too large for column" after upgrading to 10.2.0.4.0
    Field is updating only through trigger with hard coded value.
    This happens randomly not everytime.
    select * from v$version
    Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi
    PL/SQL Release 10.2.0.4.0 - Production
    CORE     10.2.0.4.0     Production
    TNS for Linux: Version 10.2.0.4.0 - Production
    NLSRTL Version 10.2.0.4.0 - Production
    Table Structure
    desc customer
    Name Null? Type
    CTRY_CODE NOT NULL CHAR(3 Byte)
    CO_CODE NOT NULL CHAR(3 Byte)
    CUST_NBR NOT NULL NUMBER(10)
    CUST_NAME CHAR(40 Byte)
    RECORD_STATUS CHAR(1 Byte)
    Trigger on the table
    CREATE OR REPLACE TRIGGER CUST_INSUPD
    BEFORE INSERT OR UPDATE
    ON CUSTOMER FOR EACH ROW
    BEGIN
    IF INSERTING THEN
    :NEW.RECORD_STATUS := 'I';
    ELSIF UPDATING THEN
    :NEW.RECORD_STATUS := 'U';
    END IF;
    END;
    ERROR at line 1:
    ORA-01001: invalid cursor
    ORA-06512: at "UPDATE_CUSTOMER", line 1320
    ORA-12899: value too large for column "CUSTOMER"."RECORD_STATUS" (actual: 3,
    maximum: 1)
    ORA-06512: at line 1
    Edited by: user4211491 on Nov 25, 2009 9:30 PM
    Edited by: user4211491 on Nov 25, 2009 9:32 PM

    SQL> create table customer(
      2  CTRY_CODE  CHAR(3 Byte) not null,
      3  CO_CODE  CHAR(3 Byte) not null,
      4  CUST_NBR NUMBER(10) not null,
      5  CUST_NAME CHAR(40 Byte) ,
      6  RECORD_STATUS CHAR(1 Byte)
      7  );
    Table created.
    SQL> CREATE OR REPLACE TRIGGER CUST_INSUPD
      2  BEFORE INSERT OR UPDATE
      3  ON CUSTOMER FOR EACH ROW
      4  BEGIN
      5  IF INSERTING THEN
      6  :NEW.RECORD_STATUS := 'I';
      7  ELSIF UPDATING THEN
      8  :NEW.RECORD_STATUS := 'U';
      9  END IF;
    10  END;
    11  /
    Trigger created.
    SQL> insert into customer(CTRY_CODE,CO_CODE,CUST_NBR,CUST_NAME,RECORD_STATUS)
      2                values('12','13','1','Mahesh Kaila','UPD');
                  values('12','13','1','Mahesh Kaila','UPD')
    ERROR at line 2:
    ORA-12899: value too large for column "HPVPPM"."CUSTOMER"."RECORD_STATUS"
    (actual: 3, maximum: 1)
    SQL> insert into customer(CTRY_CODE,CO_CODE,CUST_NBR,CUST_NAME)
      2                values('12','13','1','Mahesh Kaila');
    1 row created.
    SQL> set linesize 200
    SQL> select * from customer;
    CTR CO_   CUST_NBR CUST_NAME                                R
    12  13           1 Mahesh Kaila                             I
    SQL> update customer set cust_name='tst';
    1 row updated.
    SQL> select * from customer;
    CTR CO_   CUST_NBR CUST_NAME                                R
    12  13           1 tst                                      Urecheck your code once again..somewhere you are using record_status column for insertion or updation.
    Ravi Kumar

  • SQL*Loader-930: Error parsing insert statement for column

    we upload data on daily basis in application throug apps user and these table are invloved
    1. DEV_RA_INTERFACE_LINES_ALL(owner is a apps)
    2.RA_INTERFACE_LINES_ALL(owner is a AR)
    we do steps
    1 delete record from DEV_RA_INTERFACE_LINES_ALL table
    2 delete record from      RA_INTERFACE_LINES_ALL table
    3 load data using sql loader with apps user
    4 insert in RA_INTERFACE_LINES_ALL table
    we want to change user i mean these step do dataupload user not apps
    we give the proper rights to dataupload like select,delete and insert rights on these table to dataupload user but when i going to load data throug sql loader we receive error
    SQL*Loader-930: Error parsing insert statement for column APPS.DEV_RA_INTERFACE_
    LINES_ALL.ORIG_SYSTEM_BILL_ADDRESS_ID.
    ORA-00904: "F_ORIG_SYSTEM_BILL_ADDR_REF": invalid identifier
    and if i insert data through apps then done.

    make sure that u have no speces left
    between lines.
    give the path of control file path correctly.

  • SQL*Loader-925: Error while uldlfca: OCIStmtExecute (ptc_hp)

    Hi my table loading is failing with the floowing error. But same table is loading daily without any problem. I tried again but failed with the same message.
    SQL*Loader-2026: the load was aborted because SQL Loader cannot continue.
    SQL*Loader-925: Error while uldlfca: OCIStmtExecute (ptc_hp)
    ORA-03114: not connected to ORACLE
    SQL*Loader-2026: the load was aborted because SQL Loader cannot continue.
    SQL*Loader-925: Error while uldlgs: OCIStmtExecute (ptc_hp)
    ORA-03114: not connected to ORACLE
    SQL*Loader-925: Error while uldlgs: OCIStmtFetch (ptc_hp)
    ORA-24338: statement handle not executed
    How to solve this problem?
    Thanks
    Prashanth

    user614414 wrote:
    Hi BluShadow,
    Nothing is changed recently. Loading is happening for other files at sametime, when this loading is failed. I have renamed and recreated the table, then it is working fine. similar problem occured today for some other table.
    May i know, for any other reason it will happen?You've only supplied us with an error message and that's what the error message indicates.
    If you want more help, you need to supply more details.

  • SQL*Loader-929: Error parsing insert statement for table

    Hi,
    I get the following error with SQL*Loader:
    Table MYTABLE loaded from every logical record.
    Insert option in effect for this table: INSERT
    Column Name Position Len Term Encl Datatype
    IDE FIRST * ; CHARACTER
    SQL string for column : "mysequence.NEXTVAL"
    CSI_NBR 1:10 10 ; CHARACTER
    POLICY_NBR 11:22 12 ; CHARACTER
    CURRENCY_COD 23:25 3 ; CHARACTER
    POLICY_STAT 26:27 2 ; CHARACTER
    PRODUCT_COD 28:35 8 ; CHARACTER
    END_DAT 44:53 10 ; CHARACTER
    FISCAL_COD 83:83 1 ; CHARACTER
    TOT_VAL 92:112 21 ; CHARACTER
    SQL*Loader-929: Error parsing insert statement for table MYTABLE.
    ORA-01031: insufficient privileges
    I am positive that I can SELECT the sequence and INSERT into the table with the user invoking sql*loader.
    Where does that "ORA-01031" come from?
    Regards
    ...

    Options:
    1) you are wrong about privileges OR
    2) you have the privilege only when you connect via SQL*Plus (or whichever other tool you used to test the insert).
    Is it possible that during your test you enabled the role which granted you the INSERT privilege - and that SQL*Loader doesn't do this?
    Can you see the table in this list?
    select *
    from user_tab_privs_recd
    where table_name='MY_TABLE'
    and owner='table owner whoever';
    select *
    from user_role_privs;Any roles where DEFAULT_ROLE is not YES?
    HTH
    Regards Nigel

  • SQL*Loader-929: Error

    Hi
    I am getting following error
    SQL*Loader-929: Error parsing insert statement for table XXEEG.XXCONV_NOR_OKS_CON_HEADERS.
    ORA-00947: not enough values
    while running SQL*Loader. I have same number and types of columns in target table, data file and in control file even after I am getting this error. One thing I want to mention is that there are some fields in my data file which are NULL. But I think this should not create any problem.
    Please If any one can give the answer then it will be very helpful for me.

    Hi,
    I am generating control file using a shell script and that shell script runs SQL*LOADER using that generated control file. The following control file is generating.
    Control file:
    OPTIONS (SKIP=1)
    load data
    INFILE '/home/C9976680/xxconv_nordic_oks_header.csv'
    TRUNCATE
    into table xxeeg.XXCONV_NOR_OKS_CON_HEADERS
    fields terminated by "," optionally enclosed by '"' trailing nullcols
    ID "xxconv_nordic_contract_pkg.get_seq_val('HDR')",
    BATCH_NUMBER "xxconv_nordic_contract_pkg.get_batch_no(to_date(:START_DATE,'MM/DD/YYYY'),to_date(:END_DATE,'MM/DD/YYYY'))",
    CONTRACT_NUMBER,
    CONTRACT_VERSION,
    ORACLE_CONTRACT_NUMBER "xxconv_nordic_contract_pkg.get_orcl_kno(:CONTRACT_NUMBER,CONTRACT_VERSION))",
    START_DATE "to_date(:START_DATE,'MM/DD/YYYY')",
    END_DATE "to_date(:END_DATE,'MM/DD/YYYY')",
    STATUS,
    PARTY_ID,
    BILL_TO_ID,
    SHIP_TO_ID,
    ACCOUNTING_RULE_TYPE,
    INVOICE_RULE_TYPE,
    PAYMENT_TERMS,
    INT_SALESREP_NAME,
    EXT_SALESREP_NAME,
    RENEWAL_CONTACT_NAME,
    ISR_ZONE,
    ORBITAL_PROFILE_ID,
    CCHOLDER_NAME,
    CC_ZIP,
    CUST_PO,
    CC_NO,
    CC_EXPIRY_DATE,
    ERROR_MESSAGE,
    INTERFACED_STATUS_FLAG CONSTANT "N",
    ERROR_STACK
    Log file:
    SQL*Loader: Release 8.0.6.3.0 - Production on Wed Feb 13 02:01:11 2008
    (c) Copyright 1999 Oracle Corporation. All rights reserved.
    Control File: /opt/egapmdev/ebmdappl/xxeeg/bin/xxconv_nordic_oks_header.ctl
    Data File: /home/C9976680/xxconv_nordic_oks_header.csv
    Bad File: /opt/egapmdev/ebmdappl/xxeeg/bin/xxconv_nordic_oks_header.bad
    Discard File: none specified
    (Allow all discards)
    Number to load: ALL
    Number to skip: 1
    Errors allowed: 50
    Bind array: 64 rows, maximum of 65536 bytes
    Continuation: none specified
    Path used: Conventional
    Table XXEEG.XXCONV_NOR_OKS_CON_HEADERS, loaded from every logical record.
    Insert option in effect for this table: TRUNCATE
    TRAILING NULLCOLS option in effect
    Column Name Position Len Term Encl Datatype
    ID FIRST * , O(") CHARACTER
    BATCH_NUMBER NEXT * , O(") CHARACTER
    CONTRACT_NUMBER NEXT * , O(") CHARACTER
    CONTRACT_VERSION NEXT * , O(") CHARACTER
    ORACLE_CONTRACT_NUMBER NEXT * , O(") CHARACTER
    START_DATE NEXT * , O(") CHARACTER
    END_DATE NEXT * , O(") CHARACTER
    STATUS NEXT * , O(") CHARACTER
    PARTY_ID NEXT * , O(") CHARACTER
    BILL_TO_ID NEXT * , O(") CHARACTER
    SHIP_TO_ID NEXT * , O(") CHARACTER
    ACCOUNTING_RULE_TYPE NEXT * , O(") CHARACTER
    INVOICE_RULE_TYPE NEXT * , O(") CHARACTER
    PAYMENT_TERMS NEXT * , O(") CHARACTER
    INT_SALESREP_NAME NEXT * , O(") CHARACTER
    EXT_SALESREP_NAME NEXT * , O(") CHARACTER
    RENEWAL_CONTACT_NAME NEXT * , O(") CHARACTER
    ISR_ZONE NEXT * , O(") CHARACTER
    ORBITAL_PROFILE_ID NEXT * , O(") CHARACTER
    CCHOLDER_NAME NEXT * , O(") CHARACTER
    CC_ZIP NEXT * , O(") CHARACTER
    CUST_PO NEXT * , O(") CHARACTER
    CC_NO NEXT * , O(") CHARACTER
    CC_EXPIRY_DATE NEXT * , O(") CHARACTER
    ERROR_MESSAGE NEXT * , O(") CHARACTER
    ERROR_STACK NEXT * , O(") CHARACTER
    INTERFACED_STATUS_FLAG CONSTANT 'N'
    Column ID had SQL string
    "xxconv_nordic_contract_pkg.get_seq_val('HDR')"
    applied to it.
    Column BATCH_NUMBER had SQL string
    "xxconv_nordic_contract_pkg.get_batch_no(to_date(:START_DATE,'MM/DD/YYYY'),to_date(:END_DATE,'MM/DD/YYYY'))"
    applied to it.
    Column ORACLE_CONTRACT_NUMBER had SQL string
    "xxconv_nordic_contract_pkg.get_orcl_kno(:CONTRACT_NUMBER),to_char(:CONTRACT_VERSION))"
    applied to it.
    Column START_DATE had SQL string
    "to_date(:START_DATE,'MM/DD/YYYY')"
    applied to it.
    Column END_DATE had SQL string
    "to_date(:END_DATE,'MM/DD/YYYY')"
    applied to it.
    SQL*Loader-929: Error parsing insert statement for table XXEEG.XXCONV_NOR_OKS_CON_HEADERS.
    ORA-00947: not enough values
    Table Structure:
    CREATE TABLE XXEEG.XXCONV_NOR_OKS_CON_HEADERS
    ( ID NUMBER CONSTRAINT HEAD_ID_PK PRIMARY KEY,
    BATCH_NUMBER NUMBER,
    CONTRACT_NUMBER VARCHAR2(50),
    CONTRACT_VERSION NUMBER,
    ORACLE_CONTRACT_NUMBER VARCHAR2(300),
    START_DATE varchar2(20),
    END_DATE varchar2(20),
    STATUS VARCHAR2(20),
    PARTY_ID NUMBER,
    BILL_TO_ID NUMBER,
    SHIP_TO_ID NUMBER,
    ACCOUNTING_RULE_TYPE VARCHAR2(50),
    INVOICE_RULE_TYPE VARCHAR2(50),
    PAYMENT_TERMS VARCHAR2(50),
    INT_SALESREP_NAME VARCHAR2(50),
    EXT_SALESREP_NAME VARCHAR2(50),
    RENEWAL_CONTACT_NAME VARCHAR2(50),
    ISR_ZONE VARCHAR2(50),
    ORBITAL_PROFILE_ID VARCHAR2(50),
    CCHOLDER_NAME VARCHAR2(50),
    CC_ZIP NUMBER,
    CUST_PO VARCHAR2(50),
    CC_NO NUMBER,
    CC_EXPIRY_DATE varchar2(20),
    ERROR_MESSAGE VARCHAR2(1000),
    INTERFACED_STATUS_FLAG VARCHAR2(1),
    ERROR_STACK VARCHAR2(2000)
    Functions used above:
    FUNCTION get_batch_no(p_start_date DATE, p_end_date DATE) RETURN NUMBER IS
    BEGIN
    RETURN 1;
    END get_batch_no;
    FUNCTION get_orcl_kno(p_contract_number VARCHAR2, p_contract_version NUMBER) RETURN VARCHAR2 IS
    BEGIN
    RETURN 'M'||p_contract_number||'v'||p_contract_version;
    END get_orcl_kno;
    FUNCTION get_seq_val (p_seqtype VARCHAR2) RETURN NUMBER IS
    v_seqno NUMBER;
    BEGIN
    IF UPPER(p_seqtype) = 'HDR' THEN
    SELECT XXCONV_NOR_HDR_S.NEXTVAL
    INTO v_seqno
    FROM dual;
    RETURN v_seqno;
    END IF;
    IF UPPER(p_seqtype) = 'LINE' THEN
    SELECT XXCONV_NOR_LINE_S.NEXTVAL
    INTO v_seqno
    FROM dual;
    RETURN v_seqno;
    END IF;
    IF UPPER(p_seqtype) = 'SUBLINE' THEN
    SELECT XXCONV_NOR_SUBLINE_S.NEXTVAL
    INTO v_seqno
    FROM dual;
    RETURN v_seqno;
    END IF;
    IF UPPER(p_seqtype) = 'BILL_SCH' THEN
    SELECT XXCONV_NOR_BILL_SCH_S.NEXTVAL
    INTO v_seqno
    FROM dual;
    RETURN v_seqno;
    END IF;
    IF UPPER(p_seqtype) = 'PMS' THEN
    SELECT XXCONV_NOR_PMS_S.NEXTVAL
    INTO v_seqno
    FROM dual;
    RETURN v_seqno;
    END IF;
    IF UPPER(p_seqtype) = 'TEST' THEN
    SELECT XXCONV_NOR_WARRANTY_S.NEXTVAL
    INTO v_seqno
    FROM dual;
    RETURN v_seqno;
    END IF;
    END get_seq_val;
    -----------------------------------

  • File_To_RT data truncation ODI error ORA-12899: value too large for colum

    Hi,
    Could you please provide me some idea so that I can truncate the source data grater than max length before inserting into target table.
    Prtoblem details:-
    For my scenario read data from source .txt file and insert the data into target table.suppose source file data length exceeds max col length of the target table.Then How will I truncate the data so that data migration will be successful and also can avoid the ODI error " ORA-12899: value too large for column".
    Thanks
    Anindya

    Bhabani wrote:
    In which step you are getting this error ? If its loading step then try increasing the length for that column from datastore and use substr in the mapping expression.Hi Bhabani,
    You are right.It is for Loading SrcSet0 Load data.I have increased the column length for target table data store
    and then apply the substring function but it results the same.
    If you wanted to say to increase the length for source file data store then please tell me which length ?Physical length or
    logical length?
    Thanks
    Anindya

  • Sql*loader-604 Error occurred on an attempt to commit

    Hi,
    Iam trying to insert data in to dept table using sqlloader.It worked fine for first 2 attempts but when iam trying it later its giving an error.
    E:\ sqlldr userid=scott/tiger@test,control='E:\oracle\dept.ctl'
    sql*loader-604 Error occurred on an attempt to commit
    ora-03114: not connected to oracle
    Regards,
    Krithika

    ora-03114: not connected to oracle
    Your DBA might have wriiten a procedure to Kill an Oracle session if idle for 15 mins or so or he might have killed the session for some maintenance purpose and that to forcefully . Try reconnectiing again

Maybe you are looking for