Progress
DataServer
for ORACLE Guide


Code Pages

When you access ORACLE through the DataServer, the DataServer usually retrieves character data as determined by the code page (character set) that ORACLE is using. The DataServer is linked with the ORACLE Call Interface (OCI) and receives data from the OCI, thus the code page that the OCI uses determines the data’s code page. See the ORACLE documentation for more information.

Figure 2–1 shows a possible configuration of code pages for the DataServer components and processes.

Figure 2–1: DataServer Processes and Code Pages

In some configurations, the instance might not be using the same code page as the OCI. In this case, conversion between the two code pages occurs when the ORACLE RDBMS sends character data to the OCI.

For Progress applications accessing the DataServer, the schema image identifies the code page of the character data. You must set the code page in the schema image to match the code page used by the OCI. A system environment variable determines the code page that the OCI uses. Although the DataServer is linked to the OCI, it cannot automatically determine which code page it uses.

The code-page name that you specify in the schema image must be the name by which Progress recognizes the code page. For example, in this configuration, the OCI uses a code page named PC850. This is the same code page that Progress recognizes as ibm850. You then specify ibm850 as the code page for the schema image.

The default code page setting for the schema image is ibm850. You can specify a different code page for the schema image:

You cannot use the PROUTIL utility to change the database code page.

If you are using one schema holder to hold the schema images of several databases, you can specify a different code page for each schema image.

NOTE: Do not load data definition (.df) files that contain character translation tables into the schema holder. Using a translation table that is different from the internal table can corrupt data in a database.

Client Code Page

The Progress client might be using a different code page than the code page defined for the schema image in the schema holder.

NOTE: If you are using the DataServer for ORACLE to access double-byte character data, the client code page must match the code page of the schema-holder database. The code page of the schema image must match the code page of the ORACLE database. See the "Configuring an International Environment" section in "Configuring the DataServer," for more information.

The Internal Code Page (-cpinternal) startup parameter determines the code page that the Progress client uses when manipulating data in memory. If the client uses the -cpinternal startup parameter, then the DataServer translates between the two code pages. You must verify that the convmap.cp file contains a conversion table for the client and the code page setting in the schema image. For example, you might have set the schema image to code page xxx and the client might use code page zzz. The convmap.cp file must include a table that converts from xxx to zzz and from zzz to xxx. If convmap.cp does not include the appropriate table, Progress allows you to define your own conversion table.

Progress also allows you to define your own collation tables; however, customized collation tables have no effect when you use the DataServer to access ORACLE. The ORACLE collation tables are in effect when you perform comparisons and sorts.

For a complete discussion of how Progress handles code-page issues, see the Progress Internationalization Guide.


Copyright © 2004 Progress Software Corporation
www.progress.com
Voice: (781) 280-4000
Fax: (781) 280-4095