3. Embedded SQL for COBOL : Preprocessor Error Messages
 
Share this page                  
Preprocessor Error Messages
The following is a list of error messages specific to the COBOL language:
E_DC000A
"Table '%0c' contains column(s) of unlimited length."
Reason:
Character strings(s) of zero length have been generated. This causes a compile‑time error.
Action:
Modify the output file to specify an appropriate length.
E_E40001
"Ambiguous qualification of COBOL data item '%0c'."
Reason:
This data item is not sufficiently qualified to distinguish it from another data item. It is likely that the data item is an elementary member of a COBOL record or group.
Action:
To avoid reference ambiguity, qualify the data item further by using IN or OF. When using COBOL table subscripts (by means of parenthesis), the subscripted item must be unambiguous when the left parenthesis is processed.

The preprocessor will generate code using the most recently declared instance of the ambiguous data item.
E_E40002
"Unsupported COBOL numeric PICTURE string '%0c'."
Reason:
An invalid picture character was encountered while processing a numeric picture string.
Action:
Ensure the numeric picture string includes only the following valid characters:
S
9
(
)
V
The preprocessor will treat the data item as though it was declared:
PICTURE S9(8) USAGE COMP.
E_E40003
"COMP picture '%0c' requires too many storage bytes. Try USAGE COMP‑3."
Reason:
The COMPUTATIONAL data type must fit into a maximum of 4 bytes. Numeric integers of more than 9 digits require VAX quad‑word integer storage (8 bytes), which is incompatible with the Ingres internal runtime data types.
Action:
Try reducing the picture string or declaring the data item as COMP-3 or COMP-2, which is compatible with Ingres floating-point data.
An exception is made to allow non-scaled 10-digit numeric picture strings (PICTURE S(10) USAGE COMP), which is representable by a 4-byte integer.
E_E40005
"'%0c' is not an elementary data item. Records cannot be used."
Reason:
In this usage, COBOL records or tables cannot be used.
Action:
In order to use this data item, you must refer to an elementary data item that is a member of the record, or an element of the COBOL table.
E_E40006
"COBOL declaration level %0c is out of bounds."
Reason:
Only levels 01 through 49 and 77 are accepted for COBOL data item declarations. Level numbers outside of this range will be treated as though they were level 01. Syntax errors caused in leading clauses of a COBOL declaration may cascade and generate this error message for the OCCURS and VALUE clauses of the erroneous declaration.
Action:
Use levels 01 through 49 and 77 for COBOL data item declarations.
E_E40007
"Data item requires a PICTURE string in this USAGE."
Reason:
The specified USAGE clause requires a COBOL PICTURE string in order to determine preprocessor data item type information. Not all USAGE clauses require a PICTURE string. Data items with USAGE COMP, COMP-3 and DISPLAY do require a PICTURE string. If no PICTURE string is specified the preprocessor will treat the data item as though it was declared:
PICTURE X(10) USAGE DISPLAY.
Action:
Include a COBOL PICTURE string in the specified USAGE clause.
E_E40008
"Data item on level %0c has no parent of lesser level."
Reason:
A data item declared on a level that is greater than the level of the most recently declared data item is considered to be a subordinate member of that group. The previous level, therefore, must be the level number of a COBOL record or group declaration. This is typical of a COBOL record containing a few elementary data items. A data item declared on a level that is less than the level of the most recently declared data item is considered to be on the same level as the "parent" of that data item. Level numbers violating this rule will be treated as though they were level 01.
Action:
Adhere to the rules for level subordination listed in the Reason section.
E_E40009
"Keyword PICTURE and the describing string must be on the same line."
Reason:
When the preprocessor scans the COBOL PICTURE string, it must find the PICTURE keyword and the corresponding string description on the same line in the source file. The PICTURE keyword and the string may be separated by the IS keyword. The preprocessor will treat the declaration as though there was no PICTURE clause.
Action:
Place the PICTURE keyword and the corresponding string description on the same line in the source code, or use the IS keyword.
E_E4000A
"'%0c' is not a legally declared data item."
Reason:
The specified data item must have not been declared, but is being used in place of a COBOL variable in an embedded statement.
Action:
Declare the data item prior to using it in an embedded statement.
E_E4000B
"Unsupported PICTURE '%0c' is numeric-display. USAGE COMP assumed."
Reason:
Some versions of the COBOL preprocessor do not support numeric display data items. For example:
PICTURE S9(8) USAGE DISPLAY.
Action:
If this is the case, use COMPUTATIONAL data items and assign to and from DISPLAY items before using the data item in embedded statements.
E_E4000C
"COBOL OCCURS clause is not allowed on level 01."
Reason:
The OCCURS clause must be used with a data item that is declared on a level greater than 01. This error is only a warning, and treats the data item correctly (as though declared as a COBOL table). A warning may also be generated by the COBOL compiler.
Action:
N/A
E_E4000E
"PICTURE '%0c' is too long. The maximum length is %1c."
Reason:
COBOL PICTURE strings must not exceed the maximum length specified in the error message.
Action:
Try to collapse consecutive occurrences of the same PICTURE symbol into a repeat count.
For example: PICTURE S99999999 becomes PICTURE S9(8)
E_E4000F
"PICTURE '%0c' contains non‑integer repeat count, %1c."
Reason:
A COBOL repeat count in a PICTURE string was either too long or was not an integer. The preprocessor treats the data item as though declared with a PICTURE with a repeat count of 1. For example: S9(1) or X(1)
Action:
Check the repeat count in the PICTURE string to ensure that an integer was used.
E_E40011
"USAGE type '%0c' is not supported."
Reason:
The specified USAGE type is currently not supported.
Action:
E_E40012
"PICTURE '%0c' has two sign symbols (S)."
Reason:
The specified numeric PICTURE string has two sign symbols. The preprocessor will treat the data item as though it was declared:
PICTURE S9(8) USAGE COMP.
Action:
E_E40013
"PICTURE '%0c' has two decimal point symbols (V)."
Reason:
The specified numeric PICTURE string has two decimal point symbols. The preprocessor will treat the data item as though it was declared:
PICTURE S9(8) USAGE COMP.
Action:
E_E40014
"Missing quotation mark on continued string literal."
Reason:
The first non-blank character of a continued string literal must be a quotation mark in the indicator area. A missing quotation mark in the continued string literal or the wrong quotation mark will generate this error.
Action:
Include the missing quotation mark in the continued string literal.
E_E40015
"COBOL data item '%0c' is a table and must be subscripted."
Reason:
The data item is a COBOL table and must be subscripted in order to yield an elementary data item to retrieve or set Ingres data.
Action:
Subscript the specified data item.
E_E40016
"COBOL data item '%0c' is not a table and must not be subscripted."
Reason:
You have included subscripts when referring to a data item that was not declared as a COBOL table.
Action:
Either declare the data item as a COBOL table, or remove the subscripts that refer to the data item.
E_E40017
"Duplicate COBOL data declaration '%0c' clause found."
Reason:
You have included either a duplicate USAGE, PICTURE or OCCURS data declaration clause when declaring a data item.
Action:
Identify the duplicate data declaration clause and remove it.