Supporting Character-set Conversion in User Exits
To maintain data integrity, a user exit needs to understand the character set of the character-type data that it exchanges with an Oracle GoldenGate process. Oracle GoldenGate user exit logic provides globalization support for:
-
character-based database metadata, such as the names of catalogs, schemas, tables, and columns
-
the values of character-type columns, such as
CHAR
,VARCHAR2
,CLOB
,NCHAR
,NVARCHAR2
, andNCLOB
, as well as string-based numbers, date-time, and intervals.
Properly converting between character sets allows column data to be compared, manipulated, converted, and mapped properly from one type of database and character set to another. Most of this processing is performed when the EXIT_CALL_PROCESS_RECORD
call type is called and the record buffer and other record information is made available through callback routines.
The user exit has its own session character set. This is defined by the GET_SESSION_CHARSET
and SET_SESSION_CHARSET
callback functions. The caller process provides conversion between character sets if the character set of the user exit is different from the hosting context of the process.
To enable this support in user exits, there is the GET_DATABASE_METADATA
callback function code. This function enables the user exit to get database metadata, such as the locale and the character set of the character-type data that it exchanges with the process that calls it (Extract, data pump, Replicat). It also returns how the database treats the case-sensitivity of object names, how it treats quoted and unquoted names, and how it stores object names.
For more information about these components, see Reference for Oracle GoldenGate for Windows and UNIX.