Skip Headers
Oracle® Transparent Gateway for DB2/400 Installation and User's Guide
10g Release 2 (10.2) for IBM iSeries OS/400

Part Number B16222-01
Go to Documentation Home
Home
Go to Book List
Book List
Go to Table of Contents
Contents
Go to Index
Index
Go to Master Index
Master Index
Go to Feedback page
Contact Us

Go to previous page
Previous
Go to next page
Next
View PDF

B National Language Support

This appendix documents the National Language Support (NLS) information for the Oracle Transparent Gateway for DB2/400. For more information about using NLS, refer to Oracle Database Application Developer's Guide - Fundamentals.

This appendix contains the following sections:

B.1 Overview of National Language Support

NLS is a technology that enables Oracle applications to interact with users in their native language, using the conventions of that language for displaying data. The Oracle NLS architecture is datadriven, enabling support for specific languages and character encoding schemes to be added without requiring any changes in source code.

There are a number of settings in the gateway, DB2/400, Oracle server, and the client that affect NLS processing. In order for translations to take place correctly, character settings of these components must be compatible. Each character in one encoding scheme must have a matching character in another encoding scheme.

B.2 Gateway Configuration

After the gateway is installed, you must use the CHGORATUN command if you need to change language settings.

B.2.1 CHGORATUN Language Specification

The CHGORATUN command allows you to change the language parameter that defines the character set that is used for the gateway. The language parameter that is entered with this command specifies the conventions, such as language used for gateway messages, names of days and months, symbols for AD, BC, AM, and PM, and the default language sorting mechanism.

The syntax for specifying the language parameter is:

language[_territory.character_set]

where:

language is any valid language documented in Table B-2, "Supported Languages and Territories".

territory is optional and defaults to AMERICA. Valid values are documented in Table B-2, "Supported Languages and Territories".

character_set is optional and defaults to WE8EBCDIC37. Valid values are documented in Table B-1, "Character Sets Supported by Oracle Transparent Gateway for DB2/400".

The default setting is:

AMERICAN_AMERICA.WE8EBCDIC37

To change this setting, use the Gateway language field on the CHGORATUN main menu panel. The gateway must be shut down and restarted before the new parameter takes effect. For more information about the CHGORATUN command, refer to "CHGORATUN, Change Initialization Parameters".

B.3 DB2/400 Coded Character Set Considerations

If the coded character set identifier (CCSID) of the AS/400 data field differs from 65535, then the Oracle language parameters must correspond to the CCSID of the AS/400 data field that is being accessed. For example, if the CCSID of the data field is 280 for Italy, then the Oracle character set must be set to I8EBCDIC280. The exception to this is for columns with a CCSID of 13488 (UCS-2). The data in these columns will always be converted to the character set that is determined by NLS_LANG. Contact your DBA or refer to the IBM manual for AS/400 National Language Support for additional information about AS/400 CCSID codes.

B.3.1 Supported Character Sets

Oracle Transparent Gateway for DB2/400 supports the following languages and values for character_set.

Note that the character sets that are marked with an asterisk (*) are the Euro versions of the immediately preceding character set.

Table B-1 Character Sets Supported by Oracle Transparent Gateway for DB2/400

Description Character Set OS/400 CCSID

Austrian/German

D8EBCDIC273

273

Austrian/German (Euro)

D8EBCDIC1141*

1141

Traditional Chinese

ZHT16DBCS

937

Simplified Chinese

ZHS16DBCS

935

Danish/Norwegian

DK8EBCDIC277

277

Danish/Norwegian (Euro)

DK8E8CDIC1142*

1142

Eastern European

EE8EBCDIC870

870

Finnish/Swedish

S8EBCDIC278

278

Finnish/Swedish (Euro)

S8EBCDIC1143*

1143

French/France

F8EBCDIC297

297

French/France (Euro)

F8EBCDIC1147*

1147

German/Germany

D8EBCDIC273

273

German/Germany (Euro)

D8EBCDIC1141*

1141

Greek

EL8EBCDIC875

875

Hebrew

IW8EBCDIC424

424

Italian

I8EBCDIC280

280

Italian (Euro)

I8EBCDIC1144*

1144

Japanese

JA16DBCS

939, 5035

Japanese

JA16EBCDIC930

930, 5026

Korean

KO16DBCS

933

Spanish

WE8EBCDIC284

284

Thai

TH8TISEBCDIC

838

Turkish

TR8EBCDIC1026

1026

United States/Canada

WE8EBCDIC37

37

United States/Canada (Euro)

WE8EBCDIC1140*

1140

United States/Canada

WE8EBCDIC37C


Western European

WE8EBCDIC500

500

Western European (Euro)

WE8EBCDIC1148*

1148

Western European

WE8EBCDIC500C


Western European (Euro)

WE8EBCDIC1148C*


United Kingdom

WE8EBCDIC285

285

United Kingdom (Euro)

WE8EBCDICIC1146*

1146


B.3.2 Supported Languages and Territories

Oracle Transparent Gateway for DB2/400 supports the following language and territory combinations:

Table B-2 Supported Languages and Territories

Language Territory

American

America

Brazilian Portuguese

Brazil

Canadian French

Canada

Czech

Czech Republic

Danish

Denmark

Dutch

Netherlands

Finnish

Finland

French

France

German

Germany

Greek

Greece

Hungarian

Hungary

Icelandic

Iceland

Italian

Italy

Japanese

Japan

Mexican Spanish

Mexico

Norwegian

Norway

Polish

Poland

Portuguese

Portugal

Simplified Chinese

China

Slovak

Slovakia

Spanish

Spain

Swedish

Sweden

Traditional Chinese

Taiwan

Turkish

Turkey


B.4 Oracle Server and Client Configuration

A number of NLS parameters control NLS processing between the Oracle Database server and the client. You can set language-dependent behavior defaults for the server and set language-dependent behavior for the client to override these defaults. For a complete description of NLS parameters, refer to the NLS chapter in the Oracle Database Globalization Support Guide. These parameters do not affect gateway processing. However, you must ensure that the character set is compatible with the character set that you specify on the gateway and DB2/400. In other words, each character in one encoding scheme must have a matching character in another encoding scheme.

Caution:

Character sets must be compatible for successful data transfer. Make sure that you know which character sets are being used and that they are compatible.

When you create your Oracle Database, the character set that is used to store data is specified by the CHARACTER SET parameter. After the database is created, the database character set cannot be changed unless you re-create the database.

The Oracle database default value for CHARACTER SET is platform dependent and version dependent. The value needs to be compatible with the CHARACTER SET that is used by the gateway. To check the character set of an existing database, issue the following command in SQL*Plus:

SELECT userenv('language') FROM DUAL

Normally, WE8ISO8859P1 is the default CHARACTER SET for Western European languages (including English) on non-EBCDIC platforms. Other languages may get a different default character set, for example, KO16KSC5601 for Korean.

B.5 Message Availability

Availability of the supported language message modules depends on which modules are installed in the Oracle product set that is running on the server. If you do not have message modules installed for a particular language set, then specifying that language with a language parameter results in no messages being displayed for that module in the requested language. Only a generalized (and rather uninformative) message will be provided.

B.6 DB2/400 GRAPHIC Support

When converting DB2/400 data types to Oracle data types, if support for DB2/400 GRAPHIC data types (GRAPHIC, VARGRAPHIC, or LONG VARGRAPHIC) is required, then special consideration must be given to the selection of the NLS_LANG character set. Refer to "DB2/400 GRAPHIC Support" for more information.

B.7 Character Set Expansions

If you use a CREATE TABLE x AS SELECT command in Oracle and the source-table of the CREATE TABLE is a table in DB2/400, you may be surprised as to the width of the character-type columns of the new table in the Oracle DB. This column "expansion" is due to the fact that all codepoints in the CCSID of the DB2/400 column need to be representable in the Oracle column. Problems like this occur when the CHARACTER SET of the Oracle DB is something like UTF8. In this case, no matter what CCSID the DB2/400 column has, there is going to be a character set expansion. This is because there are at least 192 actual code-points in an SBCS code-page on the AS/400, but there are only 94 usable codepoints when that character is to be represented as a single-byte UTF8 character.

Here is an example:

The Japanese Yen character appears at codepoint 0xB2 in the code page represent by CCSID 37 (which corresponds to Oracle Characterset WE8EBCDIC37). But the codepoint for this character is 0xC2A5 in UTF8. The cent-sign appears at codepoint 0x4A in the code page represented by CCSID 37, but is represented by the codepoint 0xC2A2 in UTF8. So even though your data in DB2/400 does not contain either of a Yen or Cent-Sign symbol, the general case must hold that to represent either of these single byte SBCS characters in the Oracle DB, one needs two bytes. Now it actually turns out that there is one, and only one, character in the CCSID 37 codepage that cannot be represented by ANY sequence in the UTF8 characterset. That SBCS character is 0xFF and that is represented by the UTF8 sequence 0xEFBFBD. So, if one does a CREATE TABLE x AS SELECT, then one is always going to get at least a triple expansion of the columns. That is, a column represented by a CHAR(5) in DB2/400 and where that column has a default SBCS CCSID of perhaps 37, the corresponding column in the Oracle DB will be a CHAR(15).