0
votes

Have a record which is having Cyrillic characters in it along with the english characters in MySql with datatype varchar(30). Getting "value too large" error while loading same through Informatica 9.6.1 to Oracle database having column datatype as varchar2(30). Could anyone explain it why is it happening like that. In both the DBs charset is UTF8.

For eg, data in mySQl is 'Александровском 2022'. Loading same to Oracle DB, getting below error:

ORA-12899: value too large for column "DB"."USER_DETAILS"."AUTHORITY_NAME" (actual: 31, maximum: 30)

1

1 Answers

0
votes

In Oracle, you can specify if your column should have the maximum size of 300 BYTE or 300 CHAR. You have defined (explicit or implicit) your column to have a maximum size if 300 BYTE. So some of your strings with less than 300 characters will require more than 300 bytes as Cyrillic characters need more than 1 byte in UTF8. You can change the definition of your column to varchar2(300 CHAR). If [BYTE|CHAR] is omitted, the DB falls back to the setting defined in NLS_LENGTH_SEMANTICS. This can be set on DB or session.