ERROR OGG-03533: Conversion from character set {???} of source column {???}

Hi.

If you need to replicate data using Goldengate, between different databases types, you may get the following error.

” ERROR OGG-03533: Conversion from character set {???} of source column {???} to character set {???} of target column {???} failed because the source column contains a character ‘{?}’ at offset {?}  that is not available in the target character set. “

To replace charset not accepted on the target, try using the replication parameter: REPLACEBADCHAR.

In my case, I set up a data replication between MS-SQLServer and ORACLE, this bases uses charset windows-1252 and US-ASCII respectively.

” ERROR OGG-03533 Conversion from character set windows-1252 of source column CATEGORY to character set US-ASCII of target column CATEGORY failed because the source column contains a character ‘d3’ at offset 2 that is not available in the target character set. “

I am using the following parameter in replicat:
REPLACEBADCHAR ESCAPE
Replication works and no data loss.

See you!

2 Comments

  1. Hi Dielson,
    Great article.
    When you say “Replication works and no data loss.” actually you mean “works with no errors”, right? Because what I understand is that as not all characters in windows-1252 charset table can be mapped to US-ASCII table, what GG is doing is replacing those characters by “escape” char. So actually you are “losing” some data.

    Thanks,
    RJ

    1. Hi RJ.
      Thanks for your reply.

      In my case, I’m not losing data because the ESCAPE parameter replaces the data with a charset compatible with the destination, but I believe that in other cases where the target can not find a compatible charset, data loss may occur. (it’s always good to test the result)

      Example of my replication environment:
      column data in the source: IMÓVEIS
      Column data in the Target: IM\xD3VEIS

      When I find a method to replicate data with no changes, I’ll post it here. 🙂

      This is the that oracle says about ESCAPE

      ESCAPE
      The process replaces the data value with an escaped version of the data value.
      Depending on the character set of the source database, the value is output as one of the following:

      If the source data is not UTF-16 (NCHAR/NVARCHAR), the output is hexadecimal (\xXX).
      If the source data is UTF-16, the output is Unicode (\uXXXX).

      See you!

Leave a Reply to Dieison SantosCancel reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.