Skip to main content
Kofax

MarkView All Components - MarkView Errors related to: ORA-01438: value larger than the specified precision allowed for this column

4462
Article # 304565 - Page views: 132

Summary 

4462

Applies To

  • ERP System: ( Oracle, SAP, Peoplesoft)
  • MarkView Version: (All Versions)

Behavior

  • Error message for placing a markup
    ORA-01438: value larger than the specified precision allowed for this column
  • Error message from a rendered check attachment
    ORA-01403: no data found
    ORA-06502: PL/SQL: numeric or value error: number precision too large

Known Causes

  • This can occur if you have a particularly large data volume in your MarkView database. It occurs when an attempt is made to assign a numeric value to a column, but the value was larger than the column will allow.
    For example, the MARKUP_OBJECT_ID field on the MV_MARKUP_OBJECT table is declared NUMBER(9). If you have 999,999,999 markup objects in that table, then the next time a user places a markup on any document, an attempt will be made to put the 1,000,000,000th markup object in the table.
    The 10 digit number will not fit and it will result in the following error being displayed to the user:
    ORA-01438: value larger than the specified precision allowed for this column

Resolution

  • To resolve this situation, you may need to take the following steps:
    1. Stop all MarkView processes : Middle Tier processes and Manager DBMS jobs.
    2. Execute the following query in the MarkView database schema, and review the results to identify the sequence that has a LAST_NUMBER that has recently rolled over to use another digit. e.g. Moved from 999,999,999 to 1,000,000,000. •select * from user_sequences;
    3. Based on the name of the sequence, identify the table/field it relates to.
      For example:
      • MV_MARKUP_OBJECT_ID_SEQ => MV_MARKUP_OBJECT.MARKUP_OBJECT_ID;
      • MV_PAGE_ID_SEQ => MV_PAGE.PAGE_ID;
      • MV_FOLDER_ID_SEQ => MV_FOLDER.FOLDER_ID;
      • etc
    4. Execute a desc tablename; to identify the current precision of the field in question. For example, the following shows that in the MV_MARKUP_OBJECT table, the MARKUP_OBJECT_ID field has a precision of 9.
      SQL> desc mv_markup_object
      Name                                      Null?    Type
      ----------------------------------------- -------- --------- 
      MARKUP_OBJECT_ID                          NOT NULL NUMBER(9)
      PAGE_MARKUPS_VIEW_ID                      NOT NULL NUMBER(9)
      .....
    5. Execute a query in the MarkView database schema, similar to the following example, to identify all the tables in which the column exists:
      •select * from user_tab_cols utc where utc.column_name = 'MARKUP_OBJECT_ID';
    6. For each table returned by the query in #5, execute a DDL statement similar to the following, thus increasing the precision: alter table mv_markup_object modify (MARKUP_OBJECT_ID number(10));
      Note-Icon.png Note I: In this example we have increased the presion of the MARKUP_OBJECT_ID field from number(9) to number(10).
      Note-Icon.png Note II: You must repeat this for all the tables that contain the "problem" column.
    7. Once the precision has been increased for all the tables that contain the "problem" column, the issue should be resolved and you can then restart the all the MarkView processes.

Keywords: 01438