Insert error ORA-12899, How to avoid it?

When I insert a new row in my table, and if the value for the column foo char(20) has 22 characters, then i get the following error ORA-12899.
Is there a way to configure oracle to autmatically truncate the value to 20 characters, so it fits in the column ?.
Whe are migrating from Informix Dynamic Server to[b] Oracle 10g XE, and Informix has this feature, so in my application i did´nt have to worry about this kind of problem.

Í'm missing something, because it does´nt work for me, also I read the link you sended to me, here is the steps I´m following to configure this parameter:
1.- Connect with sys user as sysdba
2.- Run the sentence ALTER SYSTEM SET NLS_DATE_FORMAT = 'DD/MM/YYYY' SCOPE = SPFILE
2.- Shutdown and restart the Oracle server
3.- Connect as userxx
4.- Execute the following query select date1 from inventory and it displays :
date1
12-DEC-06
31-DEC-06
5.- Execute the following query[b] select date1 from inventory where date1 > '31/12/2006' and it throws an exception ORA-01843: not a valid month
4.- Connect with sys user as sysdba
5.- Execute the sentence SHOW PARAMETERS, and the nls_date_format has the value 'DD/MM/YYYY'
Is this the correct way to configure this parameter ?
What I´m doing wrong ?
My Oracle 10g XE server is running on CentOS 4.4.

Similar Messages

  • 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

  • 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 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.

  • 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 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

  • Rawtohex  - How to Insert ? ORA-12899: value too large for column

    Hi,
    Can any one please help me to resolve the following issue ?
    Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi
    PL/SQL Release 10.2.0.4.0 - Production
    Name Null? Type
    ABC_OID NOT NULL RAW(8)
    ABC_NAME NOT NULL VARCHAR2(30 CHAR)
    UPDATE_TIME NOT NULL DATE
    UPDATE_BY_WORKER_NO NOT NULL NUMBER
    I'm able to insert 1st 2 records but when am inseerting 3rd one am getting error:-
    insert into caps.ABC_LOOKUP values( rawtohex('SERIES'), 'SERIES','19-FEB-09','1065449')
    insert into caps.ABC_LOOKUP values(rawtohex('FAMILY'),'FAMILY','19-FEB-09','1065449')
    Insert into caps.ABC_LOOKUP values(rawtohex('CONNECTOR'),'CONNECTOR','19-FEB-09','1065449')
    ERROR at line 1:
    ORA-12899: value too large for column
    "XYZ"."ABC_LOOKUP"."ABC_OID" (actual: 9, maximum: 8)
    Thanks in Advance.....

    Yes, Done...
    Actually I suggested same thing to them (application), But they did not agree with me then i got confused :-)
    Now the same thing worked well..Thanks a lot for your time

  • 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?

  • Varchar Type column value  too large  ERROR (ORA-12899)

    Hi,
    I'm using Build *"ODI_11.1.1.3.0_GENERIC_100623.1635"*
    I'm trying to move data from SQL SERVER 2005 to Oracle DB 11.2.
    Integration Knowledge Module is : IKM SQL INCREMENTAL UPDATE
    Loading Knowledge Module : LKM SQL TO ORACLE
    The problem is in VARCHAR type column with length 20.
    The target column type is VARCHAR2 , length 20.
    Integration fails on the LOADING STEP with message : java.sql.BatchUpdateException: ORA-12899: value too large for column "DW_WORKUSER"."C$_10PLFACT"."C65_SOURCENO" *(actual: 26, maximum: 20)*
    Column mapping is executed on the Source.
    In column mapping I'm not using any convertion, casting or any other logic, I'm just moving my column to the target table.
    Can anyone make some suggestions ?

    Hi,
    This is due to bytes not chars. On your SQL server db you can have multibyte characters (as you can elsewhere). You may need to modify the C$/I$ and your target tables to bytes rather than chars. You may also want to check the CHARACTER_SETS that are used on the source and target.
    eg
    VARCHAR2(20 BYTE)
    Cheers
    Bos
    Edited by: Bos on Apr 13, 2011 8:36 AM

  • Oraclew error ora-01114 - How do I find which file ?

    I am getting the error ora-01114, and I've seen all the answers about either being a temporary file or the disk being offline. I don't think it's a temp file, though, and the disk is online. The file number is 23 that's giving the error, Being new to Oracle, though, I need help with what the sqlplus commands would be to find which file is number 23.
    Thanks

    I listed 4 different views you can query in my previous posts!
    Do a describe on v$datafile and v$tempfile. Both views are described along with the other mentioned views in your Oracle version# Reference manual.
    UT1 > select name
    2 from v$datafile
    3 where file# = 23;
    NAME
    /dev/rut3_ixsp_1.dbf
    HTH -- Mark D Powell --

  • I am trying to send data from textfield to database but it is showing error "ORA-12899: value too large for column "HR"."DOCTORS"."NAME" (actual: 658, maximum: 20)"

    Although i am entering only one character into the textfield then too it is reflecting the same error.
    private void initEvents()
      okButton.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
      Connection conn = null;
        Statement stmt = null;
        try{
           //STEP 2: Register JDBC driver
           Class.forName("oracle.jdbc.driver.OracleDriver");
           //STEP 3: Open a connection
           System.out.println("Connecting to database...");
           conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","hr","hr");
           //STEP 4: Execute a query
           System.out.println("Creating statement...");
           stmt = conn.createStatement();
           System.out.println(txtField);
           String sql = "INSERT INTO DOCTORS VALUES ('"+txtField+"','"+textField_1+"','"+textField_1+"','"+textField_2+"','"+textField_3+"')";
           JOptionPane.showMessageDialog(null,"Inserted Successfully!");
           ResultSet rs = stmt.executeQuery(sql);
           rs.close();
           stmt.close();
           conn.close();
        }catch(SQLException se){
           //Handle errors for JDBC
           se.printStackTrace();
        }catch(Exception e1){
           //Handle errors for Class.forName
           e1.printStackTrace();
        }finally{
           //finally block used to close resources
           try{
              if(stmt!=null)
                 stmt.close();
           }catch(SQLException se2){
           }// nothing we can do
           try{
              if(conn!=null)
                 conn.close();
           }catch(SQLException se){
              se.printStackTrace();
           }//end finally try
        }//end try

    What is a the size of the text you are trying to insert?
    Have you tried the increasing the size of 'Name' column to 658?
    Most likely the size of Name column is 20. This isn't enough to fit in the value you are trying to insert.
    You can increase the size of the Name column with alter table Hr.doctors modify ( Name column_type (658));
    Let me know if this helps.
    Regards,
    Suntrupth

  • ORA-12899 error from function invoked from SQL*Loader

    I am getting the above error when I call a function from my SQL*Loader script, and I am not seeing what the problem is. As far as I can see, there should be no problem with the field lengths, unless the length of the automatic variable within my function is somehow being set at 30? Here are the details (in the SQL*Loader script, the field of interest is the last one):
    ====
    Error:
    ====
    Record 1: Rejected - Error on table TESTM8.LET_DRIVE_IN_FCLTY, column DIF_CSA_ID.
    ORA-12899: value too large for column "TESTM8"."LET_DRIVE_IN_FCLTY"."DIF_CSA_ID" (actual: 30, maximum: 16)
    =======
    Function:
    =======
    CREATE OR REPLACE FUNCTION find_MCO_id (di_oid_in DECIMAL)
    RETURN CHAR IS mco_id CHAR;
    BEGIN
    SELECT AOL_MCO_LOC_CD INTO mco_id
    FROM CONV_DI_FLCTY
    WHERE DIF_INST_ELMNT_OID = di_oid_in;
    RETURN TRIM(mco_id);
    END;
    ==============
    SQL*Loader Script:
    ==============
    LOAD DATA
    INFILE 'LET_DRIVE_IN_FCLTY.TXT'
    BADFILE 'LOGS\LET_DRIVE_IN_FCLTY_BADDATA.TXT'
    DISCARDFILE 'LOGS\LET_DRIVE_IN_FCLTY_DISCARDDATA.TXT'
    REPLACE
    INTO TABLE TESTM8.LET_DRIVE_IN_FCLTY
    FIELDS TERMINATED BY '~' OPTIONALLY ENCLOSED BY '"'
    DIF_DRIVE_IN_OID DECIMAL EXTERNAL,
    DIF_FCLTY_TYPE_OID DECIMAL EXTERNAL NULLIF DIF_FCLTY_TYPE_OID = 'NULL',
    DIF_INST_ELMNT_OID DECIMAL EXTERNAL,
    DIF_PRI_PERSON_OID DECIMAL EXTERNAL NULLIF DIF_PRI_PERSON_OID = 'NULL',
    DIF_SEC_PERSON_OID DECIMAL EXTERNAL NULLIF DIF_SEC_PERSON_OID = 'NULL',
    DIF_CREATE_TS TIMESTAMP "yyyy-mm-dd-hh24.mi.ss.ff6",
    DIF_LAST_UPDATE_TS TIMESTAMP "yyyy-mm-dd-hh24.mi.ss.ff6",
    DIF_ADP_ID CHAR NULLIF DIF_ADP_ID = 'NULL',
    DIF_CAT_CLAIMS_IND CHAR,
    DIF_CAT_DIF_IND CHAR,
    DIF_DAYLT_SAVE_IND CHAR,
    DIF_OPEN_PT_TM_IND CHAR,
    DIF_CSA_ID CONSTANT "find_MCO_id(:DIF_DRIVE_IN_OID)"
    ============
    Table Definitions:
    ============
    SQL> describe CONV_DI_FLCTY;
    Name Null? Type
    DIF_INST_ELMNT_OID NOT NULL NUMBER(18)
    AOL_MCO_LOC_CD NOT NULL VARCHAR2(3)
    SQL> describe LET_DRIVE_IN_FCLTY;
    Name Null? Type
    DIF_DRIVE_IN_OID NOT NULL NUMBER(18)
    DIF_INST_ELMNT_OID NOT NULL NUMBER(18)
    DIF_FCLTY_TYPE_OID NUMBER(18)
    DIF_ADP_ID VARCHAR2(10)
    DIF_CAT_DIF_IND NOT NULL VARCHAR2(1)
    DIF_CAT_CLAIMS_IND NOT NULL VARCHAR2(1)
    DIF_CSA_ID VARCHAR2(16)
    DIF_DAYLT_SAVE_IND NOT NULL VARCHAR2(1)
    DIF_ORG_ENTY_ID VARCHAR2(16)
    DIF_OPEN_PT_TM_IND NOT NULL VARCHAR2(1)
    DIF_CREATE_TS NOT NULL DATE
    DIF_LAST_UPDATE_TS NOT NULL DATE
    DIF_ITM_FCL_MKT_ID NUMBER(18)
    DIF_PRI_PERSON_OID NUMBER(18)
    DIF_SEC_PERSON_OID NUMBER(18)
    =========================
    Thanks for any help with this one!

    I changed one line of the function to:
    RETURN CHAR IS mco_id VARCHAR2(16);
    But I still get the same error:
    ORA-12899: value too large for column "TESTM8"."LET_DRIVE_IN_FCLTY"."DIF_CSA_ID" (actual: 30, maximum: 16)
    I just am not seeing what is being defined as 30 characters. Any ideas much appreciated!

  • ORA-12899,database error

    Hi,
    iam getting error "ORA-12899,database error"while running workflow in informatica. Actually am getting this error at the time of data loading. I know the solution that is incresing datatype size but i dont have permissions to change the length for target database, my source is flatfil(fixed width), and i tried by putting substring for particular field but that one is not working..
    actually the data is "sicav a échéance / vervallen sicav = QUE DES V/ENKEL V" in error am getting actual size:58 maximum:55,i calculatd the length of the data taht one 54 only,my field length is 55....am not understanding wat is the problem......can anybody please help me

    You could chop you data in two, load both records, then see what the total length is in the DB? I can't see why you are getting 4 extra characters

  • Error impdp ORA-12899 DATE Datatype

    Importing the next table and show me the following error: ORA-12899: value too large for column....
    -- describe source table
    SQL> desc acs.BAZ_HECHOS_LAM
    Name Null? Type
    DFECARRIBO NOT NULL DATE
    -- describe target table
    SQL> desc acs.BAZ_HECHOS_LAM
    Name Null? Type
    DFECARRIBO NOT NULL DATE
    -- impdp output
    Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
    ORA-31693: Table data object "ACS"."BAZ_HECHOS_LAM" failed to load/unload and is being skipped due to error:
    ORA-12899: value too large for column "ACS"."BAZ_HECHOS_LAM"."DFECARRIBO" (actual: 39, maximum: 7)
    -- source table
    SQL>select dfecarribo from ACS.BAZ_HECHOS_LAM where rownum < 5;
    DFECARRIB
    02-DEC-09
    02-DEC-09
    02-DEC-09
    02-DEC-09
    Elapsed: 00:00:00.03
    What is the cause of error?
    regards

    Pl post the first 10 lines of the exp and imp logs, along with the database and OS versions on the source and target.
    HTH
    Srini

  • Different NLS_LENGTH_SEMANTICS in two dbs...and ORA-12899

    Hi,
    I have created two db instances on the same server. One with db characterset EL8MSWIN1253(single-byte characterset) , NLS_LENGTH_SEMANTICS=BYTE and the other with UTF8(multi-byte characterset) NLS_LENGTH_SEMANTICS=CHAR.
    I'm trying to export a table from db1 and import to db2 ... respectively reffered above.
    This table has the following definition:
    SQL> CREATE TABLE TEST(A NUMBER(1) , B VARCHAR2(10));
    Table created
    SQL> INSERT INTO TEST VALUES(1 , 'TEST_TEST');
    1 row inserted
    SQL> COMMIT;
    Commit complete
    SQL> INSERT INTO TEST VALUES(2 , 'ΤΕΣΤ_ΤΕΣΤ');     <------------greek chars 1 row inserted
    SQL> COMMIT;
    Commit completeIn order to accomplish the aim....
    1) I exported the table
    2) I imported it without the rows - only to 'precreate' the tables
    3) I imported it with rows ... but error ORA-12899 (current value exceeds the max length specified) occurs....
    Of course this type of error is not a suprise ...since after step 2 , when i issue the command:
    SQL> DESC TEST;
    Name Type              Nullable Default Comments
    A    NUMBER(1)         Y                        
    B    VARCHAR2(10 BYTE) Y                        <---------the NLS_LENGTH_SEMANTICS of the exported file has been used...Issuing the command
    SQL> alter table test modify b varchar2(10 char);
    Table alteredbefore step 3 and after repeating step 3 ... solves the problem(ORA-12899).
    However , is there any other way to do this .....????? (imagine that there are some hundreds/thousands of tables....to be imported in such a db)...
    Note: I use Db10g v.2
    Thanks...
    Sim

    Actually.. there is one ...Metalink - Note : 313175.1...
    However , i tried to modify/accomplish the scenarios expressed on :
    1)Metalink Note: 144808.1 (point E1 - How to go to CHAR semantics ? -> use exp/imp ) and
    2)the steps described on:
    http://otn.oracle.com/oramag/oracle/03-mar/o23sql.html
    Have anybody accomplished it with exp/imp as described above on two dbs running different db charactrer sets(one single-byte and the other UTF8)...????
    Thanks....
    Sim

Maybe you are looking for