Site icon IT Tutorial

ORA-12899: value too large for column, KUP-11007: conversion error loading table

When you start an import operation, you can get ” ORA-12899: value too large for column, KUP-11007: conversion error loading table ” errors.

 

ORA-12899: Value too Large for Column

KUP-11007: conversion error loading table

Error details are as follows.

KUP-11007: conversion error loading table "MSDBA"."TEST_TABLE"
ORA-12899: value too large for column ACCOUNT_ID (actual: 31, maximum: 29)
KUP-11009: data for row: ACCOUNT_ID : 0X'3238363032353338C7DD465445484132303130303530313135'


KUP-11007: conversion error loading table "MSDBA"."TEST_TABLE"
ORA-12899: value too large for column ACCOUNT_ID (actual: 31, maximum: 29)
KUP-11009: data for row: ACCOUNT_ID : 0X'3238363032353336C7454CDD4B434132303130303531323135'


KUP-11007: conversion error loading table "MSDBA"."TEST_TABLE"
ORA-12899: value too large for column ACCOUNT_ID (actual: 30, maximum: 29)
KUP-11009: data for row: ACCOUNT_ID : 0X'3238363032353334534F46554FD04C32303039313230373136'

 

 

 

KUP-11009: data for row

 

This error ORA-12899: value too large for column, KUP-11007: conversion error loading table is related with the Character set problem between source ( WE8ISO8859P9 ) and target ( AL32UTF8 ) .

 

Find Character Set of Oracle

You can check character set of oracle database with following scripts.

 

SQL> select * from nls_database_parameters where parameter='NLS_CHARACTERSET';

PARAMETER VALUE
------------------------------ ----------------------------------------
NLS_CHARACTERSET WE8ISO8859P9

 

There are two solutions for these errors.

First solution is very easy. Alter the related column size and increase the column size as follows.

 

Alter Table Modify Column in Oracle

Column size was 30 byte in target, I will increase it to 36 as follows.

 alter table MSDBA.TEST_TABLE modify ACCOUNT_ID VARCHAR2(36 Byte);

 

 

TABLE_EXISTS_ACTION=TRUNCATE

Then start the import again with TABLE_EXISTS_ACTION=TRUNCATE, if you start it with replace or skip option, you will get the same error again. So start the impdp with TABLE_EXISTS_ACTION=TRUNCATE option as follows.

 

impdp \"/ as sysdba\" directory=VIN dumpfile=Part1_Prime%U.dmp TABLE_EXISTS_ACTION=truncate REMAP_TABLESPACE=TBS_DATA:TBS_MSD logfile=Part1_Prime_imp.log parallel=96 remap_schema=ACCOUNT:MSDBA TABLES=MSDBA.TEST_TABLE

 

The second sohutdown


sql> startup restriclution is very difficult, because to solve it you need to change the character set of target. But mostly it is not possible in Production databases. But if you are working on Test,Development, Bugfix database, then you may change it as follows to solve this error.

sql> st;

sql> ALTER DATABASE CHARACTER SET INTERNAL_USE WE8ISO8859P9 ;

sql> shutdown;

sql> startup;

 

 

 

You can read the following article, if you want to learn more details about Export – import.

Oracle Data Pump – Export Import ( Expdp Impdp ) Tutorial with Examples-4

 

 

Do you want to learn Oracle Database for Beginners, then read the following articles.

Oracle Tutorial | Oracle Database Tutorials for Beginners ( Junior Oracle DBA )

Exit mobile version