F.3 Character Map Translation

The CHARMAP feature is available from Oracle GoldenGate 12.1.2.1.0 and higher. Using CHARMAP, you can specify that a character mapping file and setup in Oracle GoldenGate Replicat to override the character code point mapping. This feature is useful when the target database character set is a subset of the source database character set.

Note:

By enabling character set conversion for same character sets, you may encounter performance degradation.
The following is an example replication from Oracle Database to Teradata.
  • The trail file from the source is in UTF-8.

  • The target database in Teradata is UTF-16.

When applying data to Teradata, the 6706 The string contains an untranslatable character. error occurs in Teradata. Teradata doesn't implement all the valid Unicode code points, for example, U+FFFD, the default substitution character for invalid UNICODE in Oracle Database is not recognized by Teradata.

To avoid the errors, you can take the following steps to setup CHARMAP to convert unsupported Unicode characters to supported Unicode characters by Teradata database:
  1. If source and target are same character set like map UTF-16 to UTF-16, you have to enable strict character validation. Add following parameter to replicat parameter.
      REPLACEBADCHAR FORCECHECK
  2. Create character mapping override definition file. In the following example source is Oracle AL32UTF8 column and target is UTF-16, which maps U+FFFD to U+0020 white space.
    SOURCECHARSET   AL32UTF8    
    TARGETCHARSET   UTF-16    
    \xef\xbf\xbd     \x20
  3. Specify the preceding override definition file in Replicat parameter file. In the following example, the file from step 2 is saved as ./dirprm/fffd.map. Add the parameter before the MAP parameter, preferably before login parameter in case the conversion happens upon login for database connection.

    CHARMAP ./dirprm/fffd.map

The CHARMAP is supported by Oracle GoldenGate Replicat for all supported databases including Oracle GoldenGate for DB2 LUW, iSeries, and DB2 z/OS among others.