During operations on text data such as assignments of a literal
to a text column or the comparison of two string variables,
Oracle Rdb carries out character set compatibility checks to
ensure that the operation is viable.
Without automatic translation being enabled this checking is
quite restrictive in that in most cases the two text objects must
have identical character set before the operation is allowed.
The automatic translation feature allows you to choose whether
the character set checking should be restrictive or whether
Rdb should attempt a character set translation, similar to
that provided by the TRANSLATE function prior to assignments
or comparisons.
With automatic translation enabled you may easily carry out
operations that previously required additional translations steps
to be carried out explicitly.
1. Carry out comparisons between columns that contain data
encoded in different character sets that have common character
subsets, for example, DEC_MCS and DEC_KANJI have ASCII in
common.
2. Use the same SQL code to access database data irrespective of
the client's environment. For example, a user on a Japanese
PC accessing a DEC_MCS column would have to add TRANSLATE
statements to the SQL commands to convert the DEC_MCS to
SHIFT_JIS before they could display it on their screen. With
automatic translation enabled and a Display Character set
specified, this would not be required.
3. Enter data from a native interface without explicit
translations. For example, users using SHIFT_JIS on a
Japanenese PC may access and insert data into a DE_KANJI
column in the database without explicit translations
statements.
You may enabled automatic translation by:
1. Using a SET AUTOMATIC TRANSLATION statement
2. Defining the SQL$AUTOMATIC_TRANSLATION logical name
SQL$AUTOMATIC_TRANSLATION
The logical name SQL$AUTOMATIC_TRANSLATION allows SQL users to
specify that automatic translations should be enabled by default.
The logical SQL$AUTOMATIC_TRANSLATION may be placed in any
logical name table accessible to the client SQL process.
If the logical name is set to either the string 'TRUE' or the
value 'T' prior to invoking SQL, then automatic translation will
be enabled by default, any other value will disable automatic
translation within SQL.