Kbase P120650: CLOB code page has not been converted by proutil.
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  16/02/2009 |
|
Status: Unverified
SYMPTOM(s):
CLOB code page has not been converted by proutil.
Using proutil convchar convert to change the database code page has not converted the database CLOB field code page.
Using COPY-LOB to access the code page results in codepage conversion errors.
Converting a database to undefined doesn't convert the CLOB filed code page.
FACT(s) (Environment):
OpenEdge 10.x
All Supported Operating Systems
CAUSE:
Enhancement Request# 0000003862
CAUSE:
This is expected behavior. Undefined is an invalid code page for a CLOB field, and Proutil does not convert CLOB field code pages.
In the proutil entry in the OpenEdge Database Administration Guide states:
Note: PROUTIL CONVCHAR CONVERT does not convert DBCODEPAGE CLOBs (character large objects) to the new codepage; instead, it changes DBCODEPAGE CLOBs to COLUMN-CODEPAGE CLOBs with their existing settings.
FIX:
An enhancement request has been logged to implement support for changing a CLOB's codepage after it has been defined. This is not yet implemented.
Workarounds:
1. If the CLOB field does not contain any data, then a .df file can be dumped and the CLOB code page changed manually. This .df file can then be loaded into a new database creating the CLOB with the desired code page.
2. If the CLOB field does contain data, steps similar to the ones below can be used:
- Create a new CLOB field with the desired codepage
- For each record, use the COPY-LOB statement to copy the existing data to the new CLOB field. (To conserve space in the database it is possible to clear the original CLOB field after the data is copied.)
- Remove the original CLOB field
- Rename the new CLOB field to the original name