Consultor Eletrônico



Kbase P114313: The Progress client session crashes with error (11206) when assigning a CHAR value to a CLOB databas
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   15/10/2008
Status: Unverified

FACT(s) (Environment):

OpenEdge 10.x

SYMPTOM(s):

The Progress client session crashes with error (11206) when assigning a CHAR value to a CLOB database column

SYSTEM ERROR: bfdiscon: rmrep failed. Dbkey <record-number> for <table>, error <error-number> (23) (11206)

SYSTEM ERROR: bfdiscon: rmrep failed. Dbkey <record-number> for <table>, error -1223 (23) (11206)

The size of the CHARACTER field value to be assigned to the CLOB column exceeds 31KBytes

Progress generates a GPF

CAUSE:

When trying to assign a LARGE character column value to a CLOB database column, the lob locator field made the record exceed the maximum record size.

FIX:

Upgrade to 10.1B; in this version, the client will issue an error message and stop gracefully, rather than crash.

Alternatively, copy the value of the LARGE db field (the one to be assigned to the CLOB db column) into a local character variable and then empty the LARGE db field before assigning the value of the local character variable to the CLOB database column. e.g.:

DEFINE VARIABLE vc_large_text AS CHARACTER NO-UNDO.

FIND FIRST table-name EXCLUSIVE-LOCK WHERE LENGTH(table-name.large-db-column) >= 31KBytes NO-ERROR.
IF AVAILABLE table-name THEN
DO:
vc_large_text = table-name.large-db-column.
table-name.large-db-column = ?.
table-name.CLOB-column = vc_large_text.
END.