Kbase 19951: How to Work Around Error 4384 with Large Temp-Table
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  10/15/2008 |
|
Status: Verified
SYMPTOM(s):
Attempting to define a TEMP-TABLE in any Progress version to have 150 or more fields
Expression is too complex or statement is too long. (4384)
CAUSE:
There is a limit to the number of levels of nesting that can be handled in Progress syntax. You can simplify an expression by using program variables to hold intermediate results. The only known workaround has been to reduce the number of fields/indices in the temp-table definition. This can make it difficult to maintain data when the intent to use TEMP-TABLES is to gather all related data from multiple sources into one record.
FIX:
Define half of the fields in one (static) TEMP-TABLE, then define a second TEMP-TABLE like the first and add the remaining fields.
For Example:
DEFINE TEMP-TABLE ttTable1 NO-UNDO
FIELD ttField1 AS CHARACTER
....
DEFINE TEMP-TABLE ttTable2 LIKE ttTable1
FIELD ttField100 AS CHARACTER
....
This method effectively splits the statement into two or more parts and allows you to add all of the necessary fields/indices to the same TEMP-TABLE.