While import is ORA-01438: value larger than specified precision error

Hello

I get these errors on a few tables when performing an import of tables selected in a diagram. Here's one of them:
++++++++++++++++++++++++++++++++++++++++++++++++++++
. . importing table "CHARGE_DISTRIBUTE".
IMP-00058: ORACLE error 1438
ORA-01438: value larger than the precision specified for the column
IMP-00028: partial import of the restored previous table: 17055 restored lines
. . import of partition 'CM1_AGREEMENT_PARAM': 'AMAXVALUE' 327559 imported lines
++++++++++++++++++++++++++++++++++++++++++++++++++++

How to find out on which column the problem occurs?

Oracle version: 10.2.0.3.0
OS: SunOs

See you soon,.
Malika

Hello

As you can see from the following link error ORA-01438 is generally linked to a numeric column:

http://www.error-code.org.UK/view.asp?e=Oracle-ora-01438

So you might get a description of the Table:

desc CHARGE_DISTRIBUTE;

The offending column is probably one with a NUMBER data type.

Next to the notice already posted, you can compare the data type of the columns in the Source and the target Table.

Hope this helps.
Best regards
Jean Valentine

Tags: Database

Similar Questions

  • Catch the live ORA-01438 / value larger than specified precision allowed for

    I have an another question! Is it possible to intercept the error ORA-01438 immediately before that the user sends data?
    I have a db column that is used to store numbers of length 3.0. When you enter the 4 digits, the ORA-01438 is triggered.
    The Apexlib does not work, since I have some conditional regions on the page in question.

    Thanks for posting your thoughts and advice.

    Kind regards

    SEB

    SEB,

    Simply create a validation and check the length of user input.

    brgds,
    Peter

    -----
    Blog: http://www.oracle-and-apex.com
    ApexLib: http://apexlib.oracleapex.info
    Work: http://www.click-click.at
    Training: http://www.click-click.at/apex-4-0-workshops

  • ORA-01438: value larger than the precision specified for this column?

    Hi guys:

    I'm stuck in this error when I try to do an insert into a table. My Source has 581K records, but only this code and the values described below gives me a headache.

    Here's the DDL for the source and the target.

    CREATE TABLE WRK. VL_FREED
    ('CODE' VARCHAR2 (9))
    NUMBER (15.7) "VL_FREED".
    )

    CREATE TABLE WRK. VL_RENEG
    ('CODE' VARCHAR2 (9))
    NUMBER (15.7) "VL_RENEG".
    )

    CREATE TABLE WRK. WRK_XPTO
    ('CODE' VARCHAR2 (9))
    NUMBER (15,10) "VL_XPTO".
    )

    ------------------------------------------------
    The values for the VL_FREED AND VL_RENEG tables:


    CODE = 458330728 (same on both)
    VL_FREED = 191245.3000000
    VL_RENEG = 74095.3800000

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

    When I try to run this insert:

    INSERT INTO WRK. WRK_XPTO
    (
    CODE,
    VL_XPTO
    )
    Select
    T1. CODE,
    T1. VL_FREED - T2. VL_RENEG
    of WRK. VL_FREED T1, WRK. VL_RENEG T2
    WHERE
    (T1. CD_CODE = T2. CODE);

    I got the error:
    ORA-01438: value larger than the precision specified for the column

    But how can this be? The result of 191245.3000000 - 74095.3800000 is not greater than a number (15,10).

    Can someone help me on this?

    Number (15,10) means 15 total digits, 10 of which are to the right of the decimal separator, leaving only 5 on the left.

    190 000 - 75 000 = 115 000 (6 digits).

  • ORA-01438: value larger than the precision specified for the column '

    When inserting the different entries of cheaper products in this table PF_PRODUCT_VIEWS_PROFILE, I'm having this problem of "java.sql.SQLException: ORA-01438: value larger than the precision specified for the column '.»


    As I see it in the tables (desc pf4. PF_PRODUCT_VIEWS_PROFILE; & PFCA4 of ESCR. DCS_PRICE_LEVEL;), I see the accuracy for the price of the table PF_PRODUCT_VIEWS_PROFILE as NUMBER (12.7) & accuracy for the price of the table DCS_PRICE_LEVEL as NUMBER (19.7). There is therefore a difference in precision 7 units for the price in the PF_PRODUCT_VIEWS_PROFILE table that is causing this problem. So that would be the solution.


    Could you please post my comments, so that I can change the accuracy for the price of the PF_PRODUCT_VIEWS_PROFILE table.
    Need to confirm other columns in the table PF_PRODUCT_VIEWS_PROFILE does not exceed their precision values before making this change.

    Hello

    Ideally avoid data loss as you increase the length of the column as it really is. You have to worry about this in the case if you reduce the length. It is always better to be doubly sure, so also check other tables.

    see you soon

    VT

  • ODI 12 C | Error ORA-01438: value larger than the precision specified for the column

    I keep getting this error when trying to load an XML file exchange rates in a table of data warehouse. I defined the type of XML data model to NUMBER (18,15), identical to the target and it works for rates with an accuracy of 1, then when the transformed with an accuracy of 4 it generates this error. This was really frustrating... There must be somewhere a temporary table created with precision different, right? Any help with this would be appreciated.

    The example data:

    Result of currency rates

    1.4454325324 COL AUD

    1.3943435826 CAD PASS

    8.9824929424 COL CNY

    4326.4323456123 COP FAIL

    You seem to be confused with the terminology you use here. The precision is the total number of digits allowed in your number in your definition, i.e. NUMBER (18,15), precision 18, which means that you can have up to 18 digits in your number. However, you have also defined a scale value of 15 that denotes the amount of numbers that are sitting to the right of the decimal point. This means that you have only allowed for the 3 digits to sit to the left of the decimal point that is precision - scale (18-15). That's why you get the error when you try and load the COP currency that your definition of data type does not support having more than 3 digits left of the decimal separator.

  • Error ORA-01438 management value

    Hello

    I wonder if anyone can offer advice on the following problem.

    I have a PL/SQL package as a batch processing which is the insertion of the hundreds of lines in about eight different tables. For various reasons, the data invalid seeps fairly regularly.

    The main issue is trying to insert numbers into a column that is defined as number (7.2) where data is too big, of course, this will raise the error:

    ORA-01438: value larger than the precision specified for the column*.

    Now what I want to do is to record the details of the line that caused the error, but I can't catch it in the exception handler.

    I tried to use When Value_Error but this error does not fall to this Manager, it falls to when other instead.

    So, what should I do to intercept and manage this particular error?

    Also to note - I don't want to change the table definition to allow these platelets because its data not valid and I don't really want to do the logical tests on each variable before inserting it because there are hundreds of them, ideally, I want to just try the insert, fail, and then catch it.

    Thanks in advance for any answer!

    (Oracle 10g R2 / Sun OS)

    Hello

    If you already have infrastructure in place exception logging, you can use PRAGMA EXCEPTION_INIT to link to this specific exception...

    XXXX> create table dt_prec
      2  (   id  number(1)
      3  )
      4  /
    
    Table created.
    
    Elapsed: 00:00:00.06
    XXXX> DECLARE
      2
      3  BEGIN
      4
      5      insert into dt_prec values(100);
      6
      7  END;
      8  /
    DECLARE
    *
    ERROR at line 1:
    ORA-01438: value larger than specified precision allowed for this column
    ORA-06512: at line 5
    
    Elapsed: 00:00:00.03
    XXXX> DECLARE
      2
      3      ln_ExNumericPrecision   EXCEPTION;
      4
      5      PRAGMA EXCEPTION_INIT(ln_ExNumericPrecision,-1438);
      6
      7  BEGIN
      8
      9      insert into dt_prec values(100);
     10
     11  EXCEPTION
     12      WHEN ln_ExNumericPrecision THEN
     13          dbms_output.put_line('Caught ORA-01438');
     14      WHEN OTHERS THEN
     15          dbms_output.put_line('When others ');
     16  END;
     17  /
    Caught ORA-01438
    
    PL/SQL procedure successfully completed.
    

    HTH

    David

  • ORA-01438: how to find the name of the column?

    Hello

    I'm trying to find the column which is causing ORA-01438 when inserting into a table.

    The insertion is made by a C program that reads from a socket and written in an oracle 10 g database using Oracle Pro * C.

    I tried to identify the column by printing the values (about 250) just before the insert statement is executed, but check these values has been a task heavy and error prone and did not help to correct the mistake (I found a bunch of values which out of reach, but changing these values has not resolved the issue).

    Abandon this idea, I tried to track the session to help
    (1) DBMS_SYSTEM. SET_SQL_TRACE_IN_SESSION,
    (2) DBMS_MONITOR.session_trace_enable/disable and still
    (3) change the context name system set events 10046 trace forever, level 12' and;
    (4) alter system set sql_trace = true scope = mΘmoire;

    DBMS_MONITOR.session_trace_enable only gave me a few tips (the insert statement) in a trace file. But it worked for a simple example of a test database.

    When I try to turn on tracing on the database, where the error occurs, then I'm still not able to set SQL_TRACE in V$ SESSION true, even if no error is returned by the statement "DBMS_MONITOR.session_trace_enable". The value of SQL_TRACE in V$ SESSION does not change and I have no idea why. On the test database, it works fine and I can find the trace file in the user_dump_destination directory.

    Anyone have any suggestions on how to fix this?

    Any help is appreciated.
    Thanks in advance!

    Just check this:

    SQL > conn osama/osama ;
    SQL> create table test as select * from scott.dept ;
    
    SQL> select * from test ;
    
        DEPTNO DNAME          LOC
    ---------- -------------- -------------
            10 ACCOUNTING     NEW YORK
            20 RESEARCH       DALLAS
            30 SALES          CHICAGO
            40 OPERATIONS     BOSTON
    
    SQL> alter system set events='1438 trace name Errorstack forever,level 10';
    
    SQL> insert into test values (100000000000000000,'osama','JOR');
    insert into test values (100000000000000000,'osama','JOR')
                             *
    ERROR at line 1:
    ORA-01438: value larger than specified precision allowed for this column
    
    In Trace File :
    
    ORA-01438: value larger than specified precision allowed for this column
    Current SQL statement for this session:
    insert into test values (100000000000000000,'osama','JOR')
    
  • Error ORA-01438

    Hello
    I got the following error when you insert a row in my table
    ORA-01438: value larger than the precision specified for the column

    I use oracle 10g, it does not give me the name of column


    Can someone help me on this. It seems that I'm not insert more than the limit allowed for all columns
    My insert statement
    Insert in the placement values (76, 24 June 2010 ', 28 'NIT', 1, 'BLK', null, 'ROLL ON TRANSACTION', 5787134.1139, 10.3427, 59854592.000);


    Here is the description of my table

    Table column Data Type length balance precision
    Investment CODE number - 3-0
    INV_DATE Date - 7
    Number of INV_FND_CODE - 3-0
    INV_FND_NAME Varchar2 30-
    Number of INV_CO_CODE - 3-0
    INV_CO_NAME Varchar2 30-
    INV_DIST_NAME Varchar2 30-
    INV_REMARKS Varchar2 - 40
    INV_NOFU number - 4 of 10
    INV_UPRICE number - 4 of 10
    INV_AMOUNT number - 3 of 10



    Thank you

    The problem is most likely in the column named, INV_NOFU. It has a precision of 10, but you tried to insert a value of 11 digits.

    Simple example:

    SQL> CREATE TABLE t(n NUMBER(10,4));
    
    Table created.
    
    SQL> INSERT INTO t VALUES(5787134.1139);
    INSERT INTO t VALUES(5787134.1139)
                         *
    ERROR at line 1:
    ORA-01438: value larger than specified precision allowed for this column
    
  • ORA-02374: error loading conversion table / ORA-12899: value too large for column

    Hi all.

    Yesterday I got a dump of a database that I don't have access and Production is not under my administration. This release was delivered to me because it was necessary to update a database of development with some new records of the Production tables.

    The Production database has NLS_CHARACTERSET = WE8ISO8859P1 and development database a NLS_CHARACTERSET = AL32UTF8 and it must be in that CHARACTER set because of the Application requirements.

    During the import of this discharge, two tables you have a problem with ORA-02374 and ORA-12899. The results were that six records failed because of this conversion problem. I list the errors below in this thread.

    Read the note ID 1922020.1 (import and insert with ORA-12899 questions: value too large for column) I could see that Oracle gives an alternative and a workaround that is to create a file .sql with content metadata and then modifying the columns that you have the problem with the TANK, instead of BYTE value. So, as a result of the document, I done the workaround and generated a discharge .sql file. Read the contents of the file after completing the import that I saw that the columns were already in the CHAR value.

    Does anyone have an alternative workaround for these cases? Because I can't change the CHARACTER set of the database the database of development and Production, and is not a good idea to keep these missing documents.

    Errors received import the dump: (the two columns listed below are VARCHAR2 (4000))

    ORA-02374: error loading «PPM» conversion table "" KNTA_SAVED_SEARCH_FILTERS ".

    ORA-12899: value too large for column FILTER_HIDDEN_VALUE (real: 3929, maximum: 4000)

    "ORA-02372: row data: FILTER_HIDDEN_VALUE: 5.93.44667. (NET. (UNO) - NET BI. UNO - Ambiente tests '

    . . imported "PPM". "' KNTA_SAVED_SEARCH_FILTERS ' 5,492 MB 42221 42225-offline

    ORA-02374: error loading «PPM» conversion table "" KDSH_DATA_SOURCES_NLS ".

    ORA-12899: value too large for column BASE_FROM_CLAUSE (real: 3988, maximum: 4000)

    ORA-02372: row data: BASE_FROM_CLAUSE: 0 X '46524F4D20706D5F70726F6A6563747320700A494E4E455220 '.

    . . imported "PPM". "' KDSH_DATA_SOURCES_NLS ' lines 229 of the 230 308.4 KB

    Thank you very much

    Bruno Palma

    Even with the semantics of TANK, the bytes for a column VARCHAR2 max length is 4000 (pre 12 c)

    OLA Yehia makes reference to the support doc that explains your options - but essentially, in this case with a VARCHAR2 (4000), you need either to lose data or change your data type of VARCHAR2 (4000) to CLOB.

    Suggest you read the note.

  • The size of the estimated value of the project is larger than the chosen target support

    I am at a loss for trying to create a project using Adobe Encore.  I tried initially to the author of the project using the CS2 version.  When you try to export, I received the following message is displayed:

    "The size of the estimated value of the project is larger than the chosen target support.  While it is an estimate, the project may not build. »

    I have created hundreds of projects in the past, but have never received this message before.  I first thought that the problem was with the release of still I used, but I got the exact error that even trying to create the project with Encore CS5.

    The project itself has a menu, a motion menu, and a single video file.  The video file 152 last minute, and I was trying to export that to a double layer DVD.  I tried from the file using CS5.5 Adobe Premier export using a variety of parameters.  I'm trying to export it to a file DVD-2, with the attributes of soure game being the highest value.  The parameter on the main concept MPEG encoder is set to 5. I tried to export the file by using the constant and variable bitrates.

    When I recently exported the file using a contant 6.5 sampling rate, I still 650,4 Mo still remaining on my project.  I still received the same error message on the size of the project, and so I think that something is wrong.

    I even exported the video file into an AVI file compressed and then tried to coding again using CS5.5 Adobe Premier and Adobe encoder.  I always get the same error message on the size of the file.

    Any help or suggestions on how to solve this problem would be greatly appreciated.  Thank you!

    If you do not finish with wasted discs...

    Create an ISO (yet), or a folder on your hard drive (still or Premiere Elements), then use the FREE http://www.imgburn.com/index.php?act=download to write files or folders or ISO on DVD or BluRay drive (send the author a PayPal donation if you like his program)

    .

    ImgBurn will read the mark of REAL from the disk drive, which isn't always the same as the label for the box (Memorex is known for 'nothing' buy and put inside a box of Memorex)

    .

    When you write on the disk with Imgburn, use speed SLOWEST possible setting, so your burner has the best chance to create "good, well trained" laser drill holes... Since no DVD drive is required to read a burned disc, have a 'good' after a try to white high quality will help

    .

    Use Taiyo Yuden simple layer or layer two Verbatim

    Or Falcon Pro for inkjet printable two layer

  • ORA-12899: value too large for column (size: 30, maximum: 25)

    I try to insert values from one table to another using substr (column_x, 1, 25) (field target is of type varchar (25)) and I get an error: ORA-12899: value too large for column (size: 30, maximum: 25) how is this possible?

    SUBSTRB uses the same syntax:

    http://docs.Oracle.com/CD/E11882_01/server.112/e41084/functions181.htm#i87066

    If chopping byte characters does not mean that you could end up with a partial character at the end for example if each character 2 bytes, then the last character would not that it is the first byte, so wouldn't an entire character.

    Depends on what you actually try to reach by taking the partial strings.

    Keep in mind, with the UTF8, you could have up to 4 bytes of length characters each.

  • Addition of virtual column: ORA-12899: value too large for column

    I am using Oracle 11g, OS Win7, SQL Developer

    I'm trying to add the virtual column to my test table, but get ORA-12899: value too large for column error. Here are the details.
    Can someone help me in this?
    CREATE TABLE test_reg_exp
    (col1 VARCHAR2(100));
    
    INSERT INTO test_reg_exp (col1) VALUES ('ABCD_EFGH');
    INSERT INTO test_reg_exp (col1) VALUES ('ABCDE_ABC');
    INSERT INTO test_reg_exp (col1) VALUES ('WXYZ_ABCD');
    INSERT INTO test_reg_exp (col1) VALUES ('ABCDE_PQRS');
    INSERT INTO test_reg_exp (col1) VALUES ('ABCD_WXYZ');
    ALTER TABLE test_reg_exp
    ADD (col2 VARCHAR2(100) GENERATED ALWAYS AS (REGEXP_REPLACE (col1, '^ABCD[A-Z]*_')));
    
    SQL Error: ORA-12899: value too large for column "COL2" (actual: 100, maximum: 400)
    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).
    When I try to, I get the correct results:
    SELECT col1, (REGEXP_REPLACE (col1, '^ABCD[A-Z]*_'))
    FROM test_reg_exp;
    Thank you.

    Yes, RP, it works if you give col2 size > = 400.

    @Northwest - could you please test the same w/o having a clause of regex in col2?
    I have a doubt about using a REGULAR expression in this case Dynamics col.

    Refer to this (might help) - http://www.oracle-base.com/articles/11g/virtual-columns-11gr1.php
    Below excerpt from above link... see if that helps...
    >
    Notes and restrictions on the virtual columns include:

    The indexes defined on the virtual columns are equivalent to a function-based index.
    Virtual columns can be referenced in the updates and deletions WHERE clause, but they cannot be manipulated by DML.
    The tables containing virtual columns may still be eligible for result caching.
    Functions in expressions must be deterministic when the table is created, but can then be recompiled and non-deterministic without for as much invalidate the virtual column. In such cases, the following steps must be taken after the function is recompiled:
    Constraint on the virtual column must be disabled and re-enabled.
    On the virtual column indexes must be rebuilt.
    Materialized views that access the virtual column must be fully refreshed.
    The result cache must be flushed if the virtual column acceded to the request (s).
    Statistical table must be regathered.
    The virtual columns are not supported for the organized and external object in index, cluster or temporary tables.
    The expression used in the virtual column definition has the following restrictions:
    It cannot refer to another virtual column by name.
    It can refer to the columns defined in the same table.
    If it refers to a deterministic user-defined function, it cannot be used as a partitioning key column.
    The result of the expression must be a scalar value. It cannot return that an Oracle supplied the data type, a type defined by the user, LOB or LONG RAW.
    >

    Published by: Vanessa B on October 16, 2012 23:48

    Published by: Vanessa B on October 16, 2012 23:54

  • ORA-12899: value too large for column

    Hi Experts,

    I get data of erp in the form of feed systems, in particular a column length in animal feed is only 3.

    In the column of the target table was also length is VARCHAR2 (3)

    but when I try to load even in db it showing errors such as:

    ORA-12899: value too large for column
    emp_name (population: 4, maximum: 3)

    I use the version of database:
    Oracle Database 11g Express Edition Release 11.2.0.2.0 - Production

    but it is solved when the time to increase the length of the column target for varchar2 (5) of VARCHAR2 (3)... but I checked the length of this column in the feed is only 3...


    My question is why we need to increase the length of target column?


    Thank you
    Surya

    Oracle Database 11 g Express Edition uses the UTF-8 character set.

  • ORA-12899: value too large for column 'FLOWS_FILES '. ' WWV_FLOW_FILE_OBJECTS$

    Try to download a .docx, get the following:

    ORA-12899: value too large for column 'FLOWS_FILES '. «WWV_FLOW_FILE_OBJECTS$ '.» "" Mime_type "(real: 71, maximum: 48)

    Course description WWV_FLOW_FILE_OBJECTS$, MIME_TYPE is declared as varchar2 (48).

    The problem is that the Content-Type for a .docx file is "application/vnd.openxmlformats-officedocument.wordprocessingml.document.

    What is the best way to solve this problem?

    Easy solution?

    Change the Table of $ WWV_FLOW_FILE_OBJECT and widen the column.

    Or change your dads.conf file (if you are using mod_plsql) and specify a different table to PlsqlDocumentTablename.

    brgds,
    Peter

    -----
    Blog: http://www.oracle-and-apex.com
    ApexLib: http://apexlib.oracleapex.info
    Work: http://www.click-click.at
    Training: http://www.click-click.at/apex-4-0-workshops

  • ORA-22813: value of the operand is greater than the limits of the system

    Hello
    for small query

    SQL > select COMPLETION_TIME from RC_BACKUP_FILES WHERE ROWNUM < 2;

    I get

    ORA-22813: value of the operand is greater than the limits of the system

    It seems starnge to me, you know?

    I have a great value operand?

    Thanks for help.

    The Version could help here

    might be a bug

Maybe you are looking for