...
With the non Oracle database (MySQL and MSSQL), the connections are set to use Unicode only (UTF-8 for MySQL and UTF-16 for MSSQL) - and then the data is converted according to NCHARSET to the format expected by the target db connection.
Replicating data between environments having different character set can be tricky sometimes, we have to make sure the columns having values other than the default character values( For example columns having Chinese characters) are handled properly. Conflicts will occur during these scenarios .
Note |
---|
Below is a example. Source characterset : ZHT16MSWIN950 Initial replication fails with error "Error: ORA-12899: value too large for column "SCOTT"."TAB2"."COL2" (actual: 106, maximum: 100)" After changing the target to CHAR(150) the replication runs fine. But when value is deleted in source the conflict arises again for zero rows conflict since it |
The solution for the problem is specifying datatype using NCHAR or NVARCHAR , we can also use length using "CHAR(100 CHAR)" . It says it should fit 100 characters, not 100 bytes. This should avoid any issues with character sets.