4 Replies Latest reply: Jul 4, 2010 1:13 AM by AmmadAhmed RSS

    ORA-01438 value larger than specified precision allowed for this column

    user585481
      Hi all,

      If I save the form at runtime i am getting a message as "*ORA-01438: value larger than specified precision allowed for this column*", but i am not able to find out the column name that is creating the problem.

      How to find out the column name.


      Regards,

      Tulasigiri
        • 1. Re: ORA-01438 value larger than specified precision allowed for this column
          AmmadAhmed
          Hello,
          The cursor will not show you the actuall position of item where the problem exists. You will have to check item by item in database and form.

          -Ammad
          • 2. Re: ORA-01438 value larger than specified precision allowed for this column
            user585481
            I have checked all the column names, data type and size in the database and form, both are matching.

            Regards,

            Tulasigiri
            • 3. Re: ORA-01438 value larger than specified precision allowed for this column
              Sarah
              hi
              check out the following link i hope it will help you.

              http://www.dba-oracle.com/t_ora_01438_value_larger_than_specified_precision_allowed_for_this_column.htm

              sarah
              • 4. Re: ORA-01438 value larger than specified precision allowed for this column
                AmmadAhmed
                Just a hint. The error is coming from numeric data types.
                Suppose in database for one column you specified datatype NUMBER(2,2) then it will accept only two digits including decimals.
                So, if you will enter larger then this. It will give you the same error. One little example.
                SQL> desc descrp
                 Name                                      Null?    Type
                 ----------------------------------------- -------- ------------
                 DE                                                 VARCHAR2(10)
                 D1_VAL                                             VARCHAR2(10)
                 D2_VAL                                             VARCHAR2(10)
                 D3_VAL                                             NUMBER(2,2)
                
                SQL> SET LIN 500
                SQL> INSERT INTO DESCRP(D3_VAL)
                  2  VALUES (99.00);
                VALUES (99.00)
                        *
                ERROR at line 2:
                ORA-01438: value larger than specified precision allows for this
                
                
                SQL> ALTER TABLE DESCRP
                  2  MODIFY D3_VAL NUMBER(4,2);
                
                Table altered.
                
                SQL> INSERT INTO DESCRP(D3_VAL)
                  2  VALUES (99.00);
                
                1 row created.
                
                SQL> SELECT * FROM DESCRP;
                
                DE         D1_VAL     D2_VAL         D3_VAL
                ---------- ---------- ---------- ----------
                                                         99
                -Ammad