Introduction | Code Generation Error Messages |
These messages are output when the compiler is checking your COBOL program for syntax and consistency. The descriptions for each message lists the text of each message, and where necessary explain the error or problem that causes the message and gives advice on how to prevent it. The severity is not listed, as the same message can be output with a different severity depending on the setting of directives.
Syntax checking error messages have the following format:
Line-of-COBOL-code nnnn-s code**** (mmmm)** message
where the variables are:
nnnn | The message number. | ||||||||||
mmmm | The page where the previous error occurred. | ||||||||||
s | One of the following severity codes:
|
You can disable reporting of errors of E-level, W-level, and I-level, using the WARNING directive.
When the Compiler has finished, the total number of errors in each category is also output.
You can disregard some levels of errors and continue working. You can:
The error messages can contain variable information. This information is indicated as an item in italics. For example:
User-name data-name not unique
will have the name of the item that is not unique in place of the text data-name.
Your program contains an error which the COBOL system has failed to recognize.
Resolution:
Send Technical Support a copy of your source code to enable them to find
the cause of the error.
Your program contains an SQL error which the COBOL system has failed to recognize.
Resolution:
Send Technical Support a copy of your source code to enable them to find
the cause of the error.
The sequence of characters forming a literal in your source code does not conform to the rules governing the construction of such names. A literal can be either nonnumeric or numeric.
If numeric it can be up to 18 digits in length, but it must not contain more than one sign character or more than one decimal point.
A nonnumeric literal can consist of any allowable character in the computer's character set up to a maximum of 160 characters in the Procedure Division, or 2048 characters in the Data Division. A nonnumeric literal must be enclosed in quotation marks.
If you have used a figurative constant as the literal make sure that it is referenced by an allowable reserved word (such as ZERO) which you have spelled correctly. A figurative constant and a numeric literal must not be enclosed in quotation marks.
You might also have used the wrong class of literal for the context of the sentence.
Alternatively, if you have used the figurative constant ALL in your code, you have not coded it in accordance with the rules governing the use of this constant. ALL must be followed by a nonnumeric literal and not by a numeric one.
Resolution:
Revise your code to comply with the above rules.
Your program contains a character that is not part of the COBOL language set.
Resolution:
Replace the illegal character with a valid one.
You have given the same user-name without qualification to more than one data item or procedure-name in your source code.
Resolution:
You must rename or qualify the duplicated data items or procedure-names
to ensure that uniqueness of reference is achieved.
The indicator area, column 7, contains an illegal character.
Resolution:
Legal characters are *, D, -, / or space.
A file with the name filename, specified in conjunction with a COPY statement, cannot be found.
Resolution:
Change the filename, or make the file available to your COBOL system.
See Also:
Using
the Compiler in your Server Express User's Guide.
Your code does not contain a period in a place where one is expected by the rules of COBOL syntax.
Resolution:
Insert one at the relevant place.
The word starts either in area A when it should have started in area B, or in area B when it should have started in area A.
You have either used a reserved word in a place where a user defined word is expected or you have failed to use a reserved word where one is needed.
Resolution:
Alter the reserved word into a user defined one or insert a reserved word
according to the context of this message.
You are trying to use a data-name which you have not declared, or which you have misspelled.
Resolution:
This error might not always occur directly below the data item that is
not declared. This is because your COBOL system continues processing
through the source code to find out whether the data item is qualified. To
find the item in error, work backward through the source to the most
recent item.
Ensure that the data item is declared.
You have not supplied a user-defined-name at the specified place in your program.
Resolution:
Insert a name ensuring that it conforms to the rules of COBOL syntax and
that it is the correct type of name (for example a system-name or a
condition-name).
The operand you have specified is in some way incorrect, and cannot be processed by your COBOL system. For example, you might have specified a negative integer where only positive integers are allowed.
Resolution:
Check the operands allowed for this syntax.
Your program's Procedure Division exceeds the maximum size allowed.
Resolution:
Redesign your program as a set of smaller independent programs that call
one another.
Your program's Data Division exceeds the maximum size allowed.
Resolution:
Redesign your program as a set of independent programs with smaller Data
Divisions.
An integrated preprocessor invoked by the COBOL system detected an error during its initialization and was unable to continue.
Resolution:
If the preprocessor displayed any further information correct the problem
and resubmit the command
You have made an error in the sequence of line numbers in one of the statements that implement the BASIS mechanism. For example, the statement DELETE 100-60 is incorrect. (BASIS requires numeric sequence values.)
Resolution:
Correct the sequence error.
You must specify a numeric literal in this context.
Resolution:
Ensure that your numeric literal complies with the syntax rules.
You have used too many qualifiers when referring to a qualified data-name, procedure-name or text-name.
Resolution:
Change the reference in error so that it uses no more than the permitted
number of qualifiers.
Source program lines containing these words must not contain any other words.
Resolution:
Edit your program so that these words are on a line of their own.
You must specify a nonnumeric literal in this context.
Resolution:
Ensure that the literal you have specified conforms to the rules for
nonnumeric literals.
You have specified a qualified data-name, procedure-name, or text-name incorrectly.
Resolution:
Correct the qualified reference.
You cannot qualify a data-name, procedure-name, or text-name in this context.
Resolution:
Make the reference an unqualified reference.
The literal value you have specified is longer than the maximum literal length permitted.
Resolution:
If your literal is numeric, it can be up to 18 digits in length. If it is
nonnumeric, it can contain up to 160 characters in the Procedure Division,
or 2048 characters in the Data Division. Ensure that the literal value you
have specified in your program is not longer than the maximum length
permitted.
You have declared a numeric value that is too large.
Resolution:
See the chapter System
Limits and Programming Restrictions in your Programmer's
Guide to Writing Programs for information on the maximum sizes of
data items of various types.
You have declared a data item that is too long for the specified data-type.
Resolution:
See the chapter System
Limits and Programming Restrictions in your Programmer's
Guide to Writing Programs for information on the maximum sizes of
data items of various types.
You have specified an operand that is not a data item where a valid data item is expected. For example, you might have specified an FD-name or a condition-name instead of a data-name.
Resolution:
Ensure that the item that is in error is a data-name, and that it is
declared.
You have specified an elementary item as the sending or receiving field in a MOVE CORRESPONDING statement.
Resolution:
Ensure that both the sending and receiving fields are group items.
You have specified the name of a group data item in a context in which an elementary item must be used.
Resolution:
Change the reference so that it is a reference to an elementary item.
You have specified a subscripted or indexed data item where one is not allowed.
Resolution:
Change the reference so that it is a reference to a unitary (that is,
nonsubscripted and nonindexed) data item.
A procedure-name (that is, a paragraph or section-name) is expected in this context. You have probably specified a data-name.
Resolution:
Ensure the procedure-name is correct.
A numeric value is required in this context, and you have specified a nonnumeric value.
Resolution:
Make the value numeric.
An integer value is required in this context, and you have specified a noninteger value.
Resolution:
Make the value an integer value.
An alphanumeric value is required in this context, and you have specified a numeric value.
Resolution:
Make the value an alphanumeric value.
The data item should have USAGE DISPLAY.
Resolution:
Change the data item's USAGE to DISPLAY.
You have specified a paragraph or phrase more than once, when you might specify it only once.
Resolution:
Delete the repeated paragraph or phrase.
The program contains more than 255 COPY...REPLACING statements.
Resolution:
Correct your program so that it contains fewer than 255 COPY...REPLACING
statements.
The filename you have specified either does not conform to COBOL rules for filenames, or has not been declared in the FILE-CONTROL paragraph. This might be due to a misspelled valid filename.
Resolution:
Correct the filename (or, if necessary, add a file description entry to
the FILE-CONTROL paragraph).
The numeric value you specify here must be nonzero.
Resolution:
Specify a nonzero value.
You must specify a literal value or a figurative constant here.
Resolution:
Alter the value you have specified to be a literal or a figurative
constant.
You must specify a literal value here.
Resolution:
Alter the value you have specified to be a literal value.
The operand in this statement is the wrong length (for example, you have specified a prompt character more than one character long).
Resolution:
See your Language Reference
for information on the maximum sizes of data items of various types.
You must specify the name of a user-defined collating sequence here.
Resolution:
The name of the alphabet that you have defined in the SPECIAL-NAMES
paragraph should be specified.
You must specify a numeric literal or the figurative constant ZERO here.
Resolution:
Specify a numeric literal or ZERO.
The number of left and right parentheses in an arithmetic expression is not the same.
Resolution:
Check the format of the arithmetic expression and ensure that you have a
matching right parenthesis for each left parenthesis.
You have used an item with USAGE INDEX in a context where it is not allowed.
Resolution:
Change the USAGE of the item, or use an item that does not have USAGE
INDEX.
See Also:
Your Language Reference
for information on where you can use such items.
You have tried to perform an illegal operation on a data item with USAGE POINTER. Alternatively, you have tried to apply the ADDRESS OF phrase to an item that is not an 01 or 77 level item in the Working-Storage or Linkage Section.
Resolution:
See your Language Reference
for details of the operations you can perform on pointer items.
You must use a report-name in this context. You have probably misspelled a valid report-name.
Resolution:
Correct the reference.
You have performed an operation that is permitted only if the file has SEQUENTIAL organization (for example, CLOSE REEL/UNIT).
Resolution:
Change the file organization to SEQUENTIAL.
You have either specified a COBOL system directive in the wrong place or specified an invalid COBOL system directive in a $SET statement in your program.
Resolution:
For example, you can specify a $SET LIST anywhere, but a $SET PREPROCESS
only on the first line.
See Also:
The section Setting
Directives in the chapter Using the Compiler in your
Server Express User's Guide.
The chapter Directives
for Compiler in your Server Express User's Guide
for details on specific Compiler directives.
You have failed to define the class-name in the SPECIAL-NAMES paragraph, or you have misspelled a COBOL class-name.
Resolution:
Either define the condition-name in the SPECIAL-NAMES paragraph, or use
one of the COBOL class-names.
A SET index-name TO literal statement has been used to try to set an index name to a value greater than the number in the OCCURS clause for which that index name belongs.
One of the following:
Resolution:
Revise your program so that the file you have already started to COPY is
copied completely before you try to COPY the same file again.
Correct the spelling error.
You must use a report group in this context. You have probably misspelled a valid report group-name.
Resolution:
Correct the reference.
You have specified neither a valid report-name nor a valid report group in a GENERATE statement. You have probably misspelled the report-name or the report group.
Resolution:
Correct your reference to the report-name or to the report group.
The report-name that you have specified should contain all of the following:
Resolution:
Click related topics for details of the contents you require for a
report-name when it is used in a GENERATE statement.
You have specified a report group that is not of TYPE DETAIL.
Resolution:
Revise your program so that the report group is of TYPE DETAIL.
A two-character delimiter for pseudotext is missing from either a REPLACE or COPY REPLACING statement.
Resolution:
Insert the missing pseudotext delimiter (that is, ==) at the appropriate
point in your program.
You cannot specify text replacement when text replacement is already active.
Your program contains a statement or clause that is not valid in a nested program.
Resolution:
See your Language Reference
for the valid structure of a nested program.
If a file is defined as EXTERNAL then the data item specified in the associated PADDING CHARACTER clause must also be defined as EXTERNAL.
An unsigned integer was expected but not supplied.
Resolution:
Specify an unsigned integer.
An item which is part of an OCCURS ... DEPENDING ON (ODO) table entry is being used as a subscript to the table, or to another ODO table earlier in the group. This is not allowed.
Resolution:
Move the item to a location outside the ODO and use that item in this
statement.
The number of Linkage Section items required by your program exceeds the default limit.
Resolution:
Use the LINKCOUNT directive to increase this limit.
The compiler detected the error shown on your screen in your SQL syntax.
Resolution:
Refer to your SQL documentation for details of valid SQL syntax.
The compiler detected the error code during the remote SQL precompile.
Resolution:
Refer to your SQL documentation for details of valid SQL syntax.
You have either specified a COBOL system directive with an invalid argument in a $SET statement in your program or you have specified an incorrect argument type for an intrinsic function.
Resolution:
Correct the arguments.
See Also:
The section Setting
Directives in the chapter Using the Compiler in your
Server Express User's Guide.
The chapter Directives
for Compiler in your Server Express User's Guide
for details on specific Compiler directives.
You have omitted the PROCEDURE DIVISION header, and have then started without a verb.
The name specified after the word FUNCTION is not a recognized function-name. It is possible you are using the word "function" as a data-name. This word is a reserved word.
Resolution:
If you require an intrinsic function, ensure the name you have used is
correct. If you want to use function as a data-name, resubmit your program
with the directive REMOVE"FUNCTION" to remove the word FUNCTION
from the reserved word list.
See Also:
The REMOVE Compiler directive in the chapter Directives
for Compiler in your Server Express User's Guide.
You have specified an intrinsic function which requires parameters, but have not preceded the parameter list with a left parenthesis.
Resolution:
Check the format of the intrinsic function and ensure that you have a
matching left parenthesis for each right parenthesis.
You have specified a nonnumeric argument with an intrinsic function which is expecting a numeric argument.
Resolution:
Make the argument numeric.
You have specified a numeric argument with an intrinsic function where an alphanumeric argument was expected.
Resolution:
Make the argument alphanumeric.
The set of arguments you have specified with an intrinsic function do not match the types required for that function.
Resolution:
Revise your code to comply with the rules governing the construction of
argument types.
The end of a program source was encountered in an EXEC statement. This probably indicates that an END-EXEC has been omitted earlier in the program.
Resolution:
Ensure that each EXEC has a matching END-EXEC.
You have specified an intrinsic function that returns a numeric value in a position where a numeric value is not allowed.
Resolution:
Make the intrinsic function nonnumeric.
The argument you have specified does not have a length of 1.
Resolution:
Change your argument, specifying length 1.
See Also:
The LOCALCOUNT Compiler directive in the chapter Directives
for Compiler in your Server Express User's Guide.
A COBOL Division or Section header was encountered in the wrong order in the source. For example, LINKAGE SECTION was encountered after SCREEN SECTION had already been read.
The reserved word word was expected but not found.
You have use the syntax CALL BY VALUE SIZE size with an invalid size.
Resolution:
Recode with a valid positive integer.
A host variable inside an SQL statement contained an underscore character and could not be processed.
Resolution:
Remove the underscore character. The message usually indicates that an
underscore was used where a hyphen (-) was intended.
The COBOL system found more than one COBOL data items used as SQL Descriptor Areas in a single SQL statement, which is illegal.
Resolution:
Ensure that the correct data items are used. The message is produced when
the Compiler directive SQL(NODB2) is set and host variables are not
declared inside the SQL DECLARE SECTION.
See Also:
The SQL Compiler directive in the chapter Directives
for Compiler in your Server Express User's Guide.
The number of messages produced has reached the limit specified by the MAXERROR directive.
The specified user-name is not unique, but has been qualified by the current 01 level item.
The name you have specified is not a reserved word in COBOL.
Resolution:
Change the name accordingly.
You have used lower case where upper case was expected.
One or more numbers in your source code are out of sequence.
Resolution:
Check that all sequence numbers are specified in correct numeric order.
You have omitted the word RECORD.
Resolution:
Add the word RECORD.
You have omitted the word PROGRAM-ID from the PROGRAM-ID paragraph.
Resolution:
Add the word PROGRAM-ID to the PROGRAM-ID paragraph.
You have specified an invalid program-name in the PROGRAM-ID paragraph.
Resolution:
Correct the format of program-names.
You cannot have more than one identifier after the FILE STATUS clause.
You have either specified paragraphs in the wrong order, or a paragraph twice, or SPECIAL-NAMES clauses in a nonstandard order.
Resolution:
If you have repeated any of these, delete the repetition.
You have omitted the word ENVIRONMENT.
Resolution:
Add the word ENVIRONMENT.
You have omitted the word CONFIGURATION.
Resolution:
Add the word CONFIGURATION.
You have omitted the words SOURCE-COMPUTER.
Resolution:
Add the words SOURCE-COMPUTER.
You have not specified the SPECIAL-NAMES paragraph correctly.
Resolution:
Correct the format of the SPECIAL-NAMES paragraph.
You have omitted the words OBJECT-COMPUTER.
Resolution:
Add the words OBJECT-COMPUTER.
You have specified the OBJECT-COMPUTER paragraph incorrectly.
Resolution:
Correct the format of the OBJECT-COMPUTER paragraph.
You have specified at least one character twice in the ALPHABET clause. For example, you might have included a character in a range and also specified it as a literal.
Resolution:
Edit your source code so that the characters specified in the ALPHABET
clause are referenced only once.
An error exists in the coding of the SWITCH clause of the SPECIAL-NAMES paragraph in the Environment Division of your program.
Resolution:
Revise your program accordingly. Ensure that each condition named in this
clause is declared in the Data Division.
You have omitted the word COMMA from the DECIMAL-POINT clause.
Resolution:
Add the word COMMA.
You have used a COBOL word or user-defined word where your COBOL system expected the reserved word CRT.
Resolution:
Edit your code so that the reserved word CRT is used.
The literal which you have specified in the CURRENCY SIGN IS clause in the SPECIAL-NAMES paragraph of your program is not one of those permitted under the rules of COBOL syntax, or if it is then you have failed to enclose it in quotation marks. The literal must be a single character, not a digit, and cannot be any of the following, A B C D L P S V X Z * + - , . ; ( ) " / = or space (except in ANS85 where L is valid).
Resolution:
Change the literal to a permitted character and ensure that it is
enclosed in quotation marks.
You can specify DYNAMIC or EXTERNAL in the ASSIGN clause of a file description entry only if the filename is contained in a data item rather than given as a literal filename.
Resolution:
Redesign your program so that the filename is contained in a data item.
When defining an alphabet or class, you cannot use double-byte characters.
Resolution:
Redesign your program so that your alphabet or class definition does not
include any double-byte characters.
You have omitted the heading I-O-CONTROL.
Resolution:
Add the heading I-O-CONTROL.
You have omitted the heading INPUT-OUTPUT.
Resolution:
Add the heading INPUT-OUTPUT.
You have omitted the heading FILE-CONTROL.
Resolution:
Add the heading FILE-CONTROL.
You have used a SELECT clause to give a file a filename which the program recognizes, but you have failed to use a corresponding ASSIGN clause to give the file an implementor-name (the name which the system recognizes).
Resolution:
Insert the relevant ASSIGN clause after the SELECT clause.
In the ORGANIZATION IS clause of the FILE-CONTROL paragraph you have failed to specify the logical structure your file is to take.
Resolution:
Insert [LINE] SEQUENTIAL, INDEXED, or RELATIVE into this clause depending
on how you want your records to be stored and accessed in your file.
The format of this clause depends on the organization of the data-file. If you have specified the ORGANIZATION clause for a file as either INDEXED or RELATIVE you must specify an ACCESS MODE clause for it, indicating which mode you will use to access that file. If no mode is specified, sequential access mode is assumed.
Resolution:
See your Language Reference
for information on the use of the ACCESS MODE clause.
The number of separate data items making up the record key and alternate key fields of one indexed file is too great.
Resolution:
Simplify your program so you do not need so many keys, or components of
keys, to the file.
If you have specified these clauses in your program, they must be compatible, but in your program they are not.
Resolution:
Ensure that these clauses are compatible.
Your COBOL system has failed to accept part of your SELECT clause. This message could be given if the filename which you have given in the SELECT clause does not conform to the rules for the naming of COBOL files.
Resolution:
See your Language Reference
for more information.
You have specified a repeated "condition-name to TRUE/FALSE" phrase in a single SET statement. This does not conform to your selected flagging dialect.
Resolution:
Split into two separate SET statements.
This optional clause, by which you allow two or more files to access the same central storage space, does not conform to the relevant syntax rules.
Resolution:
Correct the format for this clause.
You have omitted the heading FILE SECTION.
Resolution:
Add the heading FILE SECTION.
You have omitted the heading DATA DIVISION.
Resolution:
Add the heading DATA DIVISION.
You have included one or more of the following COBOL clauses in your program:
PROGRAM COLLATING SEQUENCE IS
ALPHABET IS
CURRENCY SIGN IS
DECIMAL-POINT IS COMMA
and you have submitted the program with the NLS (National Language Support) directive on, which is not allowed.
Resolution:
Either turn the NLS directive off, or edit your source code to ensure
none of the above clauses appear in the program.
You have included the PROGRAM COLLATING SEQUENCE clause in the OBJECT-COMPUTER paragraph of your code but have failed to code a corresponding ALPHABET-NAME in the SPECIAL-NAMES paragraph. Your code must contain an ALPHABET-NAME clause if it has a PROGRAM COLLATING SEQUENCE clause in it.
Resolution:
Insert the necessary ALPHABET-NAME clause ensuring it has the same
user-defined-name as that used in the SEQUENCE entry. If you have
specified both of these clauses in your code but have still received this
message then ensure that you have used the same user-defined-name in each
and that it is spelled the same in both. Correct any spelling error your
code might contain.
The LOCK MODE clause in the FILE-CONTROL paragraph of the Environment Division does not contain one of the words EXCLUSIVE, AUTOMATIC, or MANUAL, or if it does, your COBOL system has failed to recognize the word, perhaps owing to a spelling mistake. The LOCK MODE clause controls access to files shared between a number of users in a multi-user environment. Its form is determined by the filetype with which it is used.
Resolution:
Correct the LOCK MODE clause.
The format of the LOCK MODE clause depends on the file type. You have specified a LOCK MODE clause which is incompatible with the type of the specified file. Non-shareable files must have lock mode EXCLUSIVE while shareable files can have lock mode AUTOMATIC or MANUAL.
Resolution:
Correct the LOCK MODE clause.
For an indexed sequential file description entry, any PASSWORD phrase must immediately follow the KEY phrase.
Resolution:
Edit your program so that the PASSWORD phrase immediately follows the KEY
phrase.
A file can appear in only one SAME AREA or SAME RECORD AREA clause.
Resolution:
Revise your program.
A clause you have specified is allowed only in a nested program. For example, the COMMON clause, as defined by ANSI.
Resolution:
Revise your program.
The paragraph header specified is not a legal paragraph of the Identification Division; at least, not in the selected COBOL dialect.
Resolution:
Revise your program or select another COBOL dialect.
You have a record containing OCCURS DEPENDING ON as part of a record defined with OCCURS.
Resolution:
Set the ODOSLIDE directive.
See Also:
The ODOSLIDE Compiler directive in the chapter Directives
for Compiler in your Server Express User's Guide.
The SET condition-name TO ... syntax is not a part of your chosen flagging dialect.
You have tried to SET a condition-name to FALSE. This is not a part of your chosen flagging dialect.
You have used the syntax RECORD VARYING IN SIZE DEPENDING ON signed-data-item which does not conform with your selected flagging dialect.
Resolution:
Recode with an unsigned data item.
You have failed to specify a status condition following a function-name IS mnemonic-name clause in the SPECIAL-NAMES paragraph. This does not conform with your selected flagging dialect.
Resolution:
Specify at least one status condition.
An EXEC SQL statement has been encountered but no SQL directive has been specified. The processing of the statement varies depending on whether the directive SQL is set or not; either SQL or NOSQL must be explicitly specified.
See Also:
The SQL Compiler directive in the chapter Directives
for Compiler in your Server Express User's Guide.
An SQL BEGIN DECLARE SECTION has been encountered while already in a DECLARE SECTION, or an END DECLARE SECTION has been encountered while not in a DECLARE SECTION.
A table of SQL null indicator variables contains more than 256 entries.
A table containing SQL null indicator variables was expected. Either the data-type of the table of elements is not suitable for a null indicator variable, or the specified data item is not a table.
A COPY REPLACING statement has been detected, nested under another COPY.
Where one of the identifiers in a STRING statement is an elementary numeric data item, it must be described as an integer without the 'P' symbol in its PICTURE clause.
The COBOL system tried to locate a SQL database engine but was not successful.
Resolution:
Either install a suitable engine or do not use the SQL directive.
See Also:
The SQL Compiler directive in the chapter Directives
for Compiler in your Server Express User's Guide.
The installed database engine has features which cannot be accessed by the COBOL product, but which support is planned for in a later update.
Resolution:
Do not use the features of the database engine which are new over
previous releases. Features which are not new continue to be supported.
The version of the installed database engine does not support one or more of the options specified in the SQL Compiler directive.
Resolution:
Do not select the options, update the database engine or ignore the
message.
See Also:
The SQL Compiler directive in the chapter Directives
for Compiler in your Server Express User's Guide.
Your program contains more than 20 USE statements. There is a system limit of 20 USE statements in a program.
FROM or TO in a VALUE clause does not contain the correct number of subscripts.
Resolution:
Recode your program so that it uses one subscript for each level of
OCCURS for the data declaration.
A subscript value exceeds the maximum number of occurrences specified in the corresponding OCCURS clause.
Resolution:
Recode your program.
The table element specified by the TO subscript precedes that specified by the FROM subscript.
Resolution:
Recode your program.
The VALUE clause is too complex for the compiler to process.
Inform Technical Support.
Not all of the specified values are contained within the table being declared.
Resolution:
Recode your program.
Your selected flagging dialect does not allow a CALL parameter to be a group at a level other than 01.
Resolution:
Recode your program so that the parameter is either an elementary item or
a group at level 01.
Your selected flagging dialect does not support Z literals.
Resolution:
Recode your program.
Your selected flagging dialect does not support this.
Resolution:
Recode your program.
Your selected flagging dialect does not support reversing the order of these clauses in the OCCURS phrase of a data item definition.
Resolution:
Recode your program.
Your selected flagging dialect does not support this.
Resolution:
Recode your program.
The LINE clause cannot appear in an elementary item if the containing group already contains a LINE clause.
Your paragraph contains no statements.
An SD file control entry cannot have ACCESS or ORGANIZATION clauses, because the access mode and organization of such files are fixed.
Resolution:
Delete the clauses in error.
You have specified more than the permitted number of OCCURS clauses in the definition of a table item.
Resolution:
Delete the excess OCCURS clauses.
You have specified the CODE clause in the definition of a report. If you are defining more than one report for the specified file, you must specify the CODE clause either for all reports or for none of them for that file.
Resolution:
Add CODE clauses to the other reports you have defined, or ensure that no
report definition contains a CODE clause for that file.
A REDEFINES clause must have the same level number as the item it redefines.
Resolution:
Change the level number in error.
You have declared a file using the SELECT statement in the Environment Division of your program, but have either failed to define it in a corresponding FD entry in the Data Division or have used a different filename in the FD entry, perhaps owing to a spelling mistake. If a mismatch of the two occurs then the record associated with the file does not exist although the necessary space has been created for it.
Resolution:
Add or revise the FD entry.
The specified data item must have level number 01 or 77.
Resolution:
Change the level number of the item to 01 or 77.
These source code entries describe the structure of a specified file and take the form FD or CD or SD followed by a filename and a description of the records in that file. The filename must be the name of a file defined in the FILE-CONTROL paragraph of your program.
Resolution:
Correct the format of this syntax.
The words WORKING-STORAGE are missing from the relevant Section heading in the Data Division or, if present, have not been recognized by your COBOL system. This might be due to a spelling mistake or to their position in your code.
Resolution:
Correct the errors.
The PROCEDURE DIVISION header is missing from your program or, if present, your COBOL system has failed to recognize it. This might be due to a spelling mistake or you could have placed the header at the wrong place in your code.
Alternatively, your code might contain a statement in the Procedure Division that your COBOL system has failed to recognize. This is probably because you have used a reserved word but have spelled it incorrectly.
Resolution:
Insert the header immediately after the last entry in the Data Division.
Correct your spelling error.
A qualifier (for example, JUST or COMP) is misspelled in the description of a data item.
Alternatively you have not placed the necessary period at the end of a PICTURE clause.
Resolution:
A list of possible qualifiers can be found in the chapter Concepts of
the COBOL Language in your Language
Reference. Check the spelling of the qualifier in your code.
Add the period.
Your code contains a PICTURE clause that is qualified by the wrong type of qualifier. For example, a data item cannot be defined as PIC XX USAGE COMP because it is an alphanumeric PICTURE clause but the qualifier is numeric.
Resolution:
Revise your code so that the PICTURE clause and its qualifiers are of the
same type.
The BLANK WHEN ZERO clause can be used only as part of the data description entry for data items which are numeric (those which contain a 9 in the PICTURE clause) or numeric edited (ordinary edited data items with special characters added to allow the data items to be presented in a form which can be easily understood). You have used this clause with a nonnumeric data item in your source code or with a numeric data item that contains a "P", "S", or "V".
Resolution:
Delete this clause or redefine the data item to be either numeric or
numeric edited, or remove the "P", "S", or "V"
characters.
A PICTURE string defined in a PICTURE clause in your Data Division exceeds the maximum permitted by your COBOL system.
Resolution:
Numeric data items can be up to 18 characters in length, numeric edited
up to 512 characters and alphanumeric up to 256 Mb.
The value you have specified in a VALUE clause is too big or has too many decimal places, to fit in the data item. For example, a declaration such as PIC 99 VALUE 123, where 123 is too large to fit into the receiving field without truncation.
Resolution:
Alter your code so that the data item is large enough to receive the
value that is to be placed in it.
You might have made a mistake in the coding of a VALUE clause in your program. For example, you have used a numeric data item with a nonnumeric VALUE clause. Alternatively, you have used a VALUE clause in an illegal place, for example in conjunction with a data item which has been redefined.
Resolution:
See your Language Reference
for information on the rules governing the use of the VALUE clause.
These clauses can be used in the data description entry of the Data Division but must be used only with elementary data items. Elementary data items are the most basic subdivisions of a record as they are not subdivided into higher level data items. You have used one of these clauses in conjunction with a non-elementary data item (that is, one which contains higher level data items).
Resolution:
Revise your program to ensure that these clauses appear only with
elementary data items.
You have defined a data item but have failed to give it a size, either by not using a PICTURE clause in conjunction with it, or, if it is a group item, by failing to define any elementary items to go with it. If you enter something similar to the following:
01 my-data-item.
01 prog-data-item pic x.
you receive this message after prog-data-item because, although it is my-data-item that is in error, the error is detected only when the next item at the same level as the data item in error is encountered.
Resolution:
Add the necessary PICTURE clause or elementary items to the level
hierarchy.
You have specified an invalid operator in an arithmetic expression.
Resolution:
Correct the expression.
You have specified an illegal level number in a data description entry.
Resolution:
Correct the level number.
You have specified a literal value that is incompatible with the PICTURE clause of the associated data item.
Resolution:
Make the literal value compatible with the data item.
You have used a data description qualifier which is incompatible with the associated PICTURE clause. For example, you might have used a BLANK WHEN ZERO clause for a PIC XX data item. This is illegal as the data item is alphanumeric but the associated qualifier refers only to numeric items.
Alternatively, you have used more than one PICTURE clause to define a single data item when each data item should have only one PICTURE clause associated with it.
Resolution:
Revise the qualifier or the data-type to ensure that they are compatible.
Delete any extra PICTURE clause to leave only one for that data item.
You have not declared the data-name which you have used in conjunction with a REDEFINES clause.
Resolution:
Ensure that the data-name is declared in your Data Description entry and
that the relevant REDEFINES clause is placed immediately after the
data-name which it describes.
You have specified an invalid USAGE qualifier in a data description entry.
Resolution:
Correct the USAGE qualifier.
This optional clause can be specified only for numeric description entries which contain the character S in their PICTURE clause. The key word SIGN must be followed by either LEADING or TRAILING depending on the position you want the operational sign to take.
Resolution:
Add one of these words.
The structure of level numbers in a group data item is incorrect.
Resolution:
Check the hierarchy of the level numbers and correct it.
You cannot declare a variable-length group item in an OCCURS clause.
Resolution:
Make the group item fixed length.
The BLANK clause must be followed by the word ZERO, ZEROS or ZEROES.
Resolution:
Delete any other word that you might have used in place of ZERO and
ensure that the clause contains no spelling errors.
The value you have specified for a group item exceeds its defined length.
Resolution:
Redefine the length of the group item or the value.
The qualifiers you have specified in the description of a data item are not compatible.
Resolution:
Refer to the chapter Concepts of the COBOL Language in your Language
Reference for the rules governing qualifiers in data
descriptions. Revise the data description.
You have used a character in a PICTURE clause that your COBOL system does not recognize, or which is illegal for that particular type of PICTURE string.
Resolution:
A full list of permitted characters can be found in the chapter Program
Definition in your Language
Reference. Alter the relevant PICTURE clause.
A PICTURE string which you have defined for an edited or numeric edited (one which presents numeric data items in a more readable form, for example, with leading zeros removed or with currency signs inserted) data item exceeds the maximum permitted for your COBOL system.
A string comprises 32 slots, each containing 16 characters. If no two consecutive characters in the string are the same, a new slot is allocated to each character. For example:
X(32)B(480)
works, but:
XBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBX
fails.
Resolution:
Alter the format of the string so that it contains no more than 32 groups
of characters, each group holding up to 16 identical, contiguous edit
characters.
You have either used a reserved word as a data-name, or used an invalid qualifier in a data description: this is probably a misspelling of a valid qualifier.
Resolution:
Correct the data description.
You have defined a variable length table without specifying the DEPENDING phrase that, at run time, enables your COBOL system to determine the actual table size.
Resolution:
Specify the DEPENDING phrase.
Only one of the CD entries in the Communications Section can have the INITIAL clause specified.
Resolution:
Delete the INITIAL clauses from all but one of the CD entries.
You have omitted the word RENAMES in the definition of a level 66 data item.
Resolution:
Add the word RENAMES.
You have included the syntax data-name-1 RENAMES data-name-2 THRU data-name-3 in your program, but the data item you have specified for data-name-2 is declared after the data item for data-name-3. This is not valid COBOL syntax, as data-name-2 in a THRU clause must be declared before data-name-3.
Resolution:
Check that you have specified the THRU phrase correctly.
You have used either the NEXT or TYPE clauses in a report description entry, or the GLOBAL or EXTERNAL clauses in a report file description entry, which is not an 01 level item.
Resolution:
Edit your source code to ensure that where you have used NEXT, TYPE,
GLOBAL or EXTERNAL the clause applies to an 01 level item.
The syntax indicated is allowed only in the Working-Storage Section.
Resolution:
Edit your source code to ensure that the syntax appears only in the
Working-Storage Section.
The syntax indicated is allowed only in the Working-Storage Section or the File Section.
Resolution:
Edit your source code to ensure that the syntax appears only in the
Working-Storage or File Sections.
If you specify a VALUE clause for a group item, the value in the clause must be either a nonnumeric literal or a figurative constant.
Resolution:
Revise the value in the VALUE clause.
You have not made an FD entry for all the files named in the FILE-CONTROL paragraph.
Resolution:
Ensure that you have an FD entry for each file named in a SELECT clause
in the FILE-CONTROL paragraph.
You have not declared a data item named in the DEPENDING phrase of an OCCURS clause.
Resolution:
Add a declaration of the missing data item.
You have not specified the RECORD KEY clause in the file description of an indexed sequential file.
Resolution:
Add the RECORD KEY clause to the file description.
You have declared an index data item explicitly. The item is declared implicitly by its appearance in an INDEX phrase, so you have in effect declared the same item twice.
Resolution:
Delete the explicit declaration of the index data item.
A data item that is to be used as an indexed sequential file key is longer than the maximum length allowed for such keys.
Resolution:
Redefine the key accordingly.
See Also:
See the chapter Limits
in your File Handling book.
The two alternate keys you have defined for an indexed sequential file overlap. Alternate keys must be completely distinct from one another.
Resolution:
Redefine the alternate keys so that they do not overlap, or define them
as split keys (which are allowed to overlap).
You have either not declared the data item specified in the FILE STATUS clause of a file control entry, or you have declared it incorrectly.
Resolution:
Add or revise the definition of the FILE STATUS data item.
You have either not declared the data item specified in the CURSOR IS clause in the SPECIAL-NAMES paragraph, or you have declared the item incorrectly.
Resolution:
Refer to the chapter Program Definition in your Language
Reference for the correct form of the cursor data item. Add
or revise the declaration of the data item in the CURSOR IS clause.
You have either not declared the data item specified in the PASSWORD clause in a file description entry, or you have declared the item incorrectly.
Resolution:
Add or correct the declaration of the data item in the PASSWORD clause.
You have either not declared the record item specified in the LABEL RECORD or DATA RECORD clauses in a file description entry, or you have declared the item incorrectly.
Resolution:
Add or correct the declaration of the record item in the LABEL RECORD or
DATA RECORD clause.
You have either not declared one or more of the data items named in the VALUE OF clause of an FD entry in the File Section, or you have declared such an item incorrectly.
Resolution:
Add or correct the declaration of the data item(s) in the VALUE OF
clause.
You have declared a data item with the same name as one of the special registers, which are data items that are automatically declared by your COBOL system.
Resolution:
Alter the name of the data item in error.
You have defined a file record with zero length. This is probably due to errors in all of the elementary item descriptions in the record definition.
Resolution:
Correct the record description.
You have either not declared a data item specified in the KEY phrase of an OCCURS clause, or you have declared it twice.
Resolution:
Declare the data item or remove the extra declaration.
You have specified an ASSIGN data-name in a SELECT ... ASSIGN clause that is not unitary, that is, the data definition contains an OCCURS clause.
Resolution:
Edit your source code to ensure that the ASSIGN data item does not
include an OCCURS clause.
You have defined a report-name that is either not unique or which does not conform to the rules for user-defined words. Alternatively, you have specified a clause in an RD entry incorrectly.
Resolution:
Correct your program accordingly.
The values you have specified in the PAGE LIMIT clause are not consistent; for example, the integer in the LAST DETAIL phrase is smaller than the integer in the FIRST DETAIL phrase.
Resolution:
Refer to the chapter Report
Writer in your Language Reference - Additional Topics
for the rules governing the PAGE LIMIT clause. Correct your program
accordingly.
You have tried to specify syntax for a report outside the Report Section of the Data Division.
Resolution:
Refer to the chapter Report
Writer in your Language Reference - Additional Topics
to see what syntax is allowed in the Report Section. Delete the syntax in
error or relocate it in the Report Section.
The data-name in a TYPE CH or TYPE CF clause must appear in the CONTROL clause of the associated RD entry. You might have misspelled the data-name.
Resolution:
Ensure that the correct data-name appears in both the TYPE CF/CH and
CONTROL clauses.
You have either specified a TYPE PH or TYPE PF clause without specifying a PAGE clause in the associated RD entry, or you have specified an absolute line number in the LINE NUMBER clause without specifying a PAGE clause in the associated RD entry.
Resolution:
Add a PAGE clause to the RD entry.
You have specified a duplicate of one of the TYPE clauses (for example, you have specified two TYPE PF clauses); only one clause of each type is allowed in a particular RD entry.
Resolution:
Delete the duplicate TYPE clause.
You are using a qualifier in a statement that either does not allow any qualifiers, or that does not allow this particular qualifier.
Resolution:
Refer to the chapter Concepts of the COBOL Language in your Language
Reference for details of the qualifiers allowed with this
statement. Revise your program.
All level 01 entries in the Report Section must have a TYPE clause.
Resolution:
Add a TYPE clause.
This message has three possible causes:
You have specified a NEXT PAGE clause in a LINE clause other than the first of a report group description entry.
The absolute line numbers in the LINE clauses of a report group description entry are not in ascending order.
You have not specified a LINE clause in a particular report group description entry.
Resolution:
Depending on the cause of this message, you should:
Delete the NEXT PAGE clause from any but the first LINE clause.
Rearrange the LINE clauses so that absolute line numbers are in ascending order.
Add a LINE clause.
You have specified the same report-name in more than one FD.
Resolution:
Delete the duplicate report-name.
You have specified the same CONTROL field value in more than one RD entry.
Resolution:
Delete the duplicate CONTROL field value.
You can specify a GROUP INDICATE clause only with DETAIL report groups.
Resolution:
Delete the GROUP INDICATE clause.
You can specify a SUM clause only in a control footing report group.
Resolution:
Delete the SUM clause.
You have specified in a group item a qualifier that can be used only in an elementary item. Possibly you intended the item to be elementary but omitted the PICTURE clause.
Resolution:
Refer to the chapter Program Definition in your Language
Reference for details of the correct syntax. Delete the
clause in error, or insert the PICTURE clause.
You have specified the GROUP INDICATE clause but no COLUMN clause in the same report group description.
Resolution:
Include the COLUMN qualifier.
You have specified NEXT GROUP in a group with TYPE RF or PH.
Resolution:
Delete the NEXT GROUP clause.
You have specified NEXT GROUP or NEXT PAGE in a group with TYPE PF.
Resolution:
Delete the clause.
You can specify the LINE NEXT PAGE clause only with a group of TYPE CH, CF, or DE.
Resolution:
Delete the LINE NEXT PAGE clause.
The control group on which a sum is reset must be at either the same level as or a lower level than the sum.
Resolution:
Refer to the chapter Report
Writer in the Language Reference - Additional Topics
for the rules governing the resetting of sums. Revise your code
accordingly.
The syntax you have specified is trying to create a report line which is longer than the maximum allowed.
Resolution:
Ensure that any report lines are not longer than the permitted length.
DBCS is Double Byte Character Set.
Resolution:
Refer to the chapter Micro
Focus Extensions for Double-Byte Character Set Support in your
Language Reference - Additional Topics for the rules
governing the use of DBCS. Revise your code accordingly.
DBCS is Double Byte Character Set.
Resolution:
Refer to the chapter Report
Writer in your Language Reference - Additional Topics
for the rules governing the use of DBCS. Revise your code accordingly.
You have specified a file in a SAME RECORD AREA clause in your program that is specified as EXTERNAL in an FD entry.
Resolution:
Delete the EXTERNAL file in error from the SAME RECORD AREA clause in
your program.
The syntax you have specified is not allowed in the Report Section.
Resolution:
Delete the syntax from the Report Section.
You have specified a key item that is not alphanumeric, in an index key clause where an alphanumeric key item is expected.
Resolution:
Specify an alphanumeric key item.
You have specified a VALUE clause in either the File Section or the Linkage Section where you should not have specified one.
Resolution:
You can delete the VALUE clause, although this has no effect on your
program.
You have omitted the word FILLER.
Resolution:
Add the word FILLER.
You have omitted the heading LABEL RECORDS.
Resolution:
Add the LABEL RECORDS clause.
You have either used a verb in the Procedure Division of your program that your COBOL system does not recognize as a valid COBOL verb, or have misspelled a COBOL verb.
Resolution:
Check which verbs are permitted in the COBOL language, and ensure that
you have spelled them correctly.
You might need to set a language-enabling directive if the verb you require is not part of your system's standard COBOL language.
An error exists in your coding of an IF statement in the Procedure Division of your program. The two halves of one IF statement do not match.
Alternatively, you have made an error in coding a construct that uses one of the scope delimiters (for example, END-ADD). There is a mismatch between the number of scope delimiters and the statements whose scope they delimit.
Resolution:
Ensure you do not have more ELSE phrases than IF phrases.
Revise your source code.
You have used a data item with the wrong data-type in one of your statements. For example, you have used a filename instead of a record-name in a WRITE statement.
Resolution:
Revise the relevant item.
Two or more sections in the Procedure Division, or two or more paragraphs in a section, of your program have the same title.
Resolution:
Rename or qualify the sections or paragraphs in error to ensure
uniqueness of reference.
A paragraph in the Procedure Division of your program has the same name as a data item declared in the Data Division.
Resolution:
Change the name of either the paragraph or the relevant data item to
ensure uniqueness of reference.
You have used the same entry point-name more than once in your program. (This might be because the entry point name is the same as the Program-ID.)
Resolution:
Alter the entry-name in error or qualify it.
See Also:
The ENTRY statement restrictions in your Language
Reference manual.
You are trying to manipulate data items which are not compatible.
Resolution:
Ensure that the data items are of the same type.
You have used a conditional statement (one which specifies that the truth value of a condition is to be determined at run time) in the Procedure Division where an imperative statement is expected.
Resolution:
Replace the statement with one that begins with an imperative verb and is
followed by a specification of an unconditional action to be taken at run
time.
You have probably specified two subscripts for a one-dimensional table item.
Resolution:
Revise your code to ensure that you do not specify more than one
subscript for a one-dimensional table item.
You have either used invalid syntax with an ACCEPT or DISPLAY statement, or have incorrectly coded that part of your code containing the communications syntax. The most likely cause of this message is a spelling mistake in your code.
Resolution:
Correct the spelling mistake.
See Also:
The ALTER and ACCEPT statement restrictions in the
Language Reference
Code following an I/O verb (for example READ or WRITE) violates the rules of COBOL syntax.
Resolution:
Revise your code accordingly.
An arithmetic statement which you have used in the Procedure Division does not conform to the rules of COBOL syntax. These statements must begin with an arithmetic verb (for example SUBTRACT or DIVIDE), followed by the relevant numeric literals or identifiers which the verb will act upon when the program is executed. The statement which you have specified is not a valid one.
Resolution:
Ensure that the arithmetic statement you want to use conforms to the
relevant rules.
An arithmetic expression which you have used in the Procedure Division is not a valid one.
Resolution:
See your Language Reference
for details of the COBOL syntax for complicated arithmetic tasks.
The key value in a file operation or in a SEARCH statement is the wrong size.
Resolution:
Check the key definition and correct the key value.
A conditional expression which you have specified in the Procedure Division of your program does not conform to the rules of COBOL syntax. These expressions, an example of which is the statement immediately following an IF, enable one of two following statements to be executed at run time depending on the truth value.
Resolution:
Refer to the chapter Procedure
Division in your Language Reference for details
on the coding of the particular statement which you have used. Revise your
code accordingly.
A PERFORM statement can be followed only by seven AFTER phrases. Your code exceeds this limit.
Resolution:
Rewrite your code ensuring that no PERFORM statement has more than seven
associated AFTER phrases.
You have made a mistake in the coding of the Procedure Division. For example, you might have forgotten one of the Section headers.
Resolution:
Ensure that the Procedure Division follows a logical order and that each
section in it has its own header.
The file named in this statement must have sequential access mode. A file's access mode is derived from its SELECT statement; it is either implied by the file's organization or specified by its ACCESS MODE clause.
Resolution:
Change the access mode of the file to sequential.
An index-name is required at this point in the operation you are trying.
Resolution:
Edit your source code to ensure that the name you have specified is an
index-name.
A statement in the Procedure Division of your program contains too many operands or individual operands that are too long.
Resolution:
Reduce the number of operands, or shorten those operands that are too
long.
You have used more than one INDEXED BY phrase on a table. This does not conform with your selected flagging dialect.
You have referred to your COBOL system-generated data item DEBUG-ITEM in a procedure that is not in the Declaratives Section of your program's Procedure Division. References to DEBUG-ITEM are permitted only in the Declaratives Section.
Resolution:
Delete the reference to DEBUG-ITEM, or move it to the Declaratives
Section.
You have associated two or more USE procedures with the same file when you can associate only one.
Resolution:
Delete the additional USE references.
You have associated two or more USE procedures with the same file open mode when you can associate only one.
Resolution:
Delete the additional USE references.
You have specified an invalid combination of USE FOR DEBUGGING procedures in the Declaratives.
Resolution:
Refer to the chapter Debug
Module in your Language Reference - Additional Topics
for details of debugging procedures. Correct the declaratives.
You have specified a literal value as the receiving field in an operation involving an implicit or explicit move. A receiving field must be a data item.
Resolution:
Change the literal value to a reference to a data item.
You have named an index data item as the sending or receiving field in a MOVE statement. This is not permitted.
Resolution:
Move the value into a nonindex data item and use this data item in the
MOVE statement.
You have specified a SEARCH statement with no WHEN phrase. You must specify at least one WHEN phrase in a SEARCH statement.
Resolution:
Add a WHEN phrase to the SEARCH statement.
You must specify the name of a file record in this context (as defined in an FD entry in the File Section). You have probably misspelled a valid record-name.
Resolution:
Correct the reference so that it is a reference to a file record.
Your program contains one or more nested programs.
Resolution:
Specify the NESTCALL directive when you compile.
You cannot specify an AFTER phrase in an in-line PERFORM statement.
Resolution:
Delete the AFTER phrase.
The paragraph you have named in an ALTER statement is not a paragraph on which an ALTER statement can operate. Such a paragraph must consist of a single sentence containing only a single GO TO statement (without a DEPENDING phrase).
Resolution:
Change the reference in the ALTER statement to refer to a paragraph that
can be operated on by ALTER, or edit the named paragraph so that it can be
operated on by ALTER
See Also:
The ALTER and ACCEPT statement restrictions in your
Language Reference.
The WHEN OTHER phrase, if specified, must be the last phrase in an EVALUATE statement.
Resolution:
Ensure any WHEN phrases precede the WHEN OTHER phrase.
A type mismatch has occurred between one of the selection subjects in an EVALUATE statement and the corresponding selection object.
Resolution:
Correct the EVALUATE statement.
You cannot INITIALIZE a variable-length item.
Resolution:
Delete the item-name from the INITIALIZE statement.
You have repeated the same data class in the REPLACING phrase of an INITIALIZE statement.
Resolution:
Delete the repeated class from the INITIALIZE statement.
You have referred to a report for which no FD entry exists in the Report Section. You might have forgotten to specify the report entry, or you might have misspelled a correct report-name.
Resolution:
Correct the report-name or add the necessary report definition to the
Report Section.
You have specified an operation that cannot be performed on a file opened in sequential access mode.
You have specified an operation that cannot be performed on a file opened in random access mode.
You have specified an operation that cannot be performed on a line sequential file.
You have performed an illegal operation on a file defined with a LINAGE clause (for example, WRITE AFTER CO1).
Resolution:
Delete the illegal operation or redefine the file without a LINAGE
clause.
You have specified a data item that is not a level 01 or level 77 data item where your COBOL system is expecting the data item to be either one of these levels.
Resolution:
Redefine the data item to be level 01 or level 77.
You have specified the same data item-name twice in the USING phrase of the Procedure Division header. All the names in the USING phrase must be different.
Resolution:
Delete the extra reference.
You have specified two WHEN phrases in a SEARCH statement using the ALL option. You can specify only one WHEN phrase in this context.
Resolution:
Delete the extra WHEN phrase.
You have specified fewer than two filenames in the USING phrase of a MERGE statement.
Resolution:
Ensure that you specify at least two filenames in the USING phrase of the
MERGE statement.
You have referred to a nonexistent paragraph or section. You have probably misspelled a valid procedure-name.
Resolution:
Ensure that the procedure you have referred to exists and that you have
spelled it correctly.
You have not specified the LOCK phrase with a READ statement.
Resolution:
Insert a LOCK phrase in the READ statement.
You have used a READ statement with the NO LOCK phrase on a file for which no record locking is required.
Resolution:
Delete the NO LOCK phrase.
You have specified a LOCK clause in a READ statement for a file that you have already locked with an EXCLUSIVE lock (in the FILE-CONTROL paragraph of your code).
Resolution:
Record locking is impossible on a file which your run unit has already
locked with an EXCLUSIVE lock. To ensure that the two LOCK entries are
compatible, you should either delete the LOCK entry in the relevant READ
statement, or alter the LOCK MODE IS entry in the FILE-CONTROL paragraph.
This message applies only to multi-user syntax. You have specified a WITH KEPT LOCK phrase in a READ statement which accesses a file that does not support multiple record locking.
Resolution:
Either change the filetype or delete the WITH KEPT LOCK phrase to ensure
compatibility between the two entries.
You can use the operators = and NOT = only in comparisons involving pointer data items.
Resolution:
Correct the comparison.
You have tried to perform a file operation (READ, WRITE, REWRITE) on a file whose FD entry indicates that it is a report.
Resolution:
Delete the input-output statement.
You have named a screen in an ACCEPT statement that contains only display fields.
Resolution:
Make sure that you have named the correct screen.
COBOL syntax expects a comma at this point.
Resolution:
Add the missing comma.
A data item in an ACCEPT/DISPLAY statement has a different number of dimensions from the corresponding Screen Section item.
Alternatively, the Screen Section item has a different number of dimensions from the corresponding data item appearing in the USING or TO clause.
Resolution:
Make the two item definitions consistent.
See Also:
The ALTER and ACCEPT statement restrictions in your
Language Reference.
You have specified an operation on a file that can be performed only if the file has access mode DYNAMIC.
Resolution:
Change the file control entry for the file so that it has access mode
DYNAMIC.
Your program contains a statement that cannot be compiled to COMP subset instructions.
The data-names you have specified in the CODE-SET clause do not belong to a record in the file.
Resolution:
Edit your source code so that the data-names in the CODE-SET clause refer
to a record in the file.
You have specified data-names in the CODE-SET clause that belong to more than one record. All data-names specified in this clause must belong to a single record in the file.
Resolution:
Edit your source code to delete one or more of the CODE-SET data-names to
ensure that all data-names belong to only one record.
One or more of the data-names specified in the CODE-SET clause is redefined, or you might have specified the whole record, rather than individual data-names contained in that record, in the CODE-SET clause.
Resolution:
Edit your source code so that the data-names in the record are specified
only once.
OCCURS DEPENDING ON item must be last item in a group.
Resolution:
Restructure your data items so that the OCCURS DEPENDING ON item is the
last item in the group.
You cannot use a reference modified item or a group containing an OCCURS ... DEPENDING ON clause in this context.
Resolution:
Replace the reference modified item, or specify a valid item in the
OCCURS DEPENDING ON clause.
A SEARCH is not possible as the description of the operand does not contain the INDEXED BY clause.
Resolution:
Include an INDEXED BY clause in your operand description.
The specified exception is not appropriate with this statement in the specified access mode. For example an AT END has been specified with random access, or INVALID KEY with sequential access.
OPEN EXTEND is not allowed on a file defined with a LINAGE clause.
The operand used in this situation can only be a table.
Resolution:
Revise your code so that the operand is a table.
Your program's data size exceeds the maximum size permitted.
Resolution:
Redesign your program to include less data.
You have specified a SORT file incorrectly.
Resolution:
Correct the syntax.
Your PICTURE string can contain a maximum of 18 numeric positions.
Resolution:
Change your PICTURE string so that it contains no more than 18 numeric
positions.
You have specified a floating-point item incorrectly.
Resolution:
Do not use a floating-point item in this context.
You can include a maximum of seven AFTER phrases in a PERFORM statement.
Resolution:
Delete any extra AFTER phrases.
You have omitted the word ALSO.
Resolution:
Add the word ALSO.
NEXT SENTENCE should be used only in either branch of an IF statement or the WHEN branch of a SEARCH statement.
Resolution:
Revise your code to ensure that you have obeyed these rules.
See Also:
The ALTER and ACCEPT statement restrictions in your
Language Reference.
You have included more than the maximum of two AFTER phrases in your program.
Resolution:
Delete any extra AFTER phrases.
You have used an index data item as a subscript in your program.
See Also:
See the section Compiler
Limits in the chapter System Limits and Programming
Restrictions in your Programmer's Guide to Writing Programs.
See Also:
See the section Compiler
Limits in the chapter System Limits and Programming
Restrictions in your Programmer's Guide to Writing Programs.
See Also:
See the section Compiler
Limits in the chapter System Limits and Programming
Restrictions in your Programmer's Guide to Writing Programs.
See Also:
See the section Compiler
Limits in the chapter System Limits and Programming
Restrictions in your Programmer's Guide to Writing Programs.
The Siemens BS2000 SORT statement allows the use of KEY-YY. This compiler has accepted the syntax but results are likely to be invalid.
You have used the syntax DISPLAY ALL figurative constant which does not conform with your selected flagging dialect.
You have used the syntax DISPLAY ALL literal which is not does not conform with your selected flagging dialect.
The REDEFINES clause does not immediately follow data-name in your program.
Resolution:
Revise your program so that REDEFINES immediately follows data-name.
You have specified a nonalphanumeric data item in your FILE STATUS.
Resolution:
Amend your code to make the data item alphanumeric.
You have omitted at least one of CHANGED or NAMED.
Resolution:
Add CHANGED and/or NAMED to your program.
You have included the noise words THAN and TO unnecessarily in your code.
Resolution:
Delete these words.
You have specified EOP, which is invalid for a file which has no LINAGE.
Resolution:
Delete EOP.
The data item you have specified as an index file key is not alphanumeric.
Resolution:
Revise your code to make the data item alphanumeric.
The syntax you have used is not supported under ANSI'85.
Resolution:
Delete this syntax.
You have included the PICTURE symbol P in a Relative Key.
Resolution:
Delete P.
The language element is part of the ANSI'85 standard but above the flagging level selected.
The language element is not part of the ANSI'85 standard. It is an OS/VS COBOL, VS COBOL II, Micro Focus, or other extension.
The ANSI'85 standard has defined this language element as obsolete. It will be removed from the next ANSI standard.
Resolution:
Delete this syntax.
Source file contains more than one source program. In this situation, more than one separate, not nested, program exists.
A SORT or MERGE statement contains multiple files in the GIVING clause.
You declared a NOT phrase but failed to declare a matching verb.
Resolution:
Add the appropriate verb.
You declared an ELSE phrase but failed to declare a matching IF.
Resolution:
Resolve the mismatch between the conditional verbs.
You declared a WHEN phrase but failed to declare a matching verb.
Resolution:
Add the appropriate verb.
You declared a scope-delimiter but failed to declare a matching verb.
Resolution:
Resolve the mismatch between the conditional verbs.
You have omitted the words USAGE DISPLAY-1.
Resolution:
Add USAGE DISPLAY-1.
You do not have sufficient space in area B for SO/SI characters to be inserted for the DBCS items. If the source program is ported to an environment requiring SO/SI characters the source line might become corrupted.
You have declared a PICTURE clause but the group USAGE does not match this type.
Resolution:
Either delete the USAGE clause or change the PICTURE clause.
You have failed to specify an imperative statement.
Resolution:
Include an imperative statement.
You have specified a minimum size for your record definitions, but none of the records you have defined is that small.
Resolution:
Revise your code so that the minimum size specified is equal to your
smallest data record.
You have specified a maximum size for your record definitions, but none of the records you have defined is that large.
Resolution:
Revise your code so that the maximum size specified is equal to your
largest data record.
The pseudo text delimiters used in COPY ... REPLACING and REPLACE must be preceded by a space and followed by a separator. The system assumes one was present.
See Also:
The QUOTE Compiler directive in the chapter Directives
for Compiler in your Server Express User's Guide.
See Also:
The CONSTANT Compiler directive in the chapter Directives
for Compiler in your Server Express User's Guide.
See Also:
The ALTER and ACCEPT statement restrictions in your
Language Reference.
If the source and target items in a move overlap, the result of the move is undefined.
A $END or $ELSE conditional compilation statement has been found without a preceding $IF. The line was ignored.
You have tried to set a level-88 item to FALSE without having specified the WHEN SET TO FALSE clause in the item's data description.
You have mixed two different copies of copylbr in the same program. You must not use COPY statements if some have qualification and some have not.
Under ANS85, ADVANCING PAGE and END-OF-PAGE are not allowed in the same WRITE statement.
You have supplied an argument to an intrinsic function which is of the wrong format, for example INTEGER-OF-DAY requires a date of a certain format.
Resolution:
Check the format of your argument against the documentation and recode.
You are trying to compare a scaled integer with a numeric edited or alphanumeric item.
Your COBOL system has found non-COBOL characters when trying a COPY REPLACING BY operation. The results might be different on other environments.
The file status values for file operations differ between environments.
Parameters to user defined syntax must be listed in the PROCEDURE DIVISION USING clause of the program.
The definitions of user defined syntax are restricted in size.
Resolution:
Shorten your syntax definition, for example, by omitting optional noise
words.
The syntax defined in the program matches more than one user defined syntax definition. The code could be ambiguous. However, in many cases the definitions resolve to the same method. The Compiler uses the first matching definition.
The code in the program does not match any user defined syntax definition.
User-defined syntax FUNCTIONs can only be defined for methods which have a RETURNING or GIVING phrase on the PROCEDURE DIVISION.
User-defined syntax FUNCTIONs cannot include the RETURNING/GIVING parameter as a parameter to the function.
You are trying to use a reserved word as the verb of user-defined syntax definition.
Resolution:
Choose a different verb.
class-name is not declared as a CLASS in the SPECIAL-NAMES paragraph of a program. It's definition might be required as a result of specified inheritance.
Resolution:
Include an appropriate CLASS statement in the SPECIAL-NAMES paragraph and
resubmit.
You are trying an operation involving incompatible types of OBJECT REFERENCEs, as defined by the inheritance hierarchy. Such objects are said to be non-conforming.
User defined syntax definitions must contain SELF or OBJECT exactly once.
The use of OF or parentheses in user defined syntax definitions can lead to ambiguities in parsing which might give unexpected results. For example, parentheses following a parameter might be interpreted as subscripting.
There is a limitation as to how many user defined syntax definitions with the same verb or function name can be considered at one time. For example, you have many definitions of the same verb.
Resolution:
Reduce the number of definitions of each verb, or shorten those
definitions.
You have tried to use syntax that is only permitted in an instance method.
INVOKE statements might omit the initial object reference, and this implies an object reference of SELF. This can only be done in a METHOD, not a program.
Arithmetical expressions in SQL statements are processed by the database engine and are therefore not affected by the ARITHMETIC directive.
See Also:
The ARITHMETIC Compiler directive in the chapter Directives
for Compiler in your Server Express User's Guide.
You have tried to pass a parameter BY VALUE when calling a nested program.
See Also:
The ALTER and ACCEPT statement restrictions in your
Language Reference.
See Also:
The ALTER and ACCEPT statement restrictions in your
Language Reference
See Also:
The ALTER and ACCEPT statement restrictions in your
Language Reference
See Also:
The ALTER and ACCEPT statement restrictions in your
Language Reference
The use of OF, IN or parentheses in user defined syntax definitions that follow or might possibly follow a parameter are not allowed.
The use of a COBOL verb is not allowed as a user defined required, or optionally required, word in user defined syntax definitions.
You might have mistyped one of the characters allowed in column 7. Your COBOL system cannot interpret the character in column 7, and has treated it as a space.
You have placed a hyphen in column 7, though your COBOL system is not expecting the syntax to be continued at this point. The continuation character is ignored.
You have included a continuation character in column 7, but you have forgotten to start the continuation of the literal with a quotation mark. Your COBOL system assumes that the quotation mark is included.
The literal in the previous line of source code is not delimited by quotation marks, so your COBOL system is expecting a continuation character in column 7, and a continuation of the literal. Your COBOL system has assumed that you meant to end the literal on the previous line.
You have used a hyphen as the last character in a user-defined-name, which is against the rules of COBOL syntax. Your COBOL system has accepted this as a valid name, however, and has not changed the name in any way.
The name that you have specified is longer than 30 characters. Your COBOL system treats this as a name consisting of the first 30 characters of your original name.
The literal you have specified in the VALUE clause is too long to fit into the data item. Your COBOL system inserts characters from the literal into the data item, until the data item is full.
All Double Byte Character Set (DBCS) symbols are two bytes (two characters) long. You have specified a literal that consists of an odd number of characters. Your COBOL system ignores the last, single character of the literal.
You have not included the quotation mark to show the end of the Double Byte Character Set (DBCS) literal. Your COBOL system has assumed that you intended to end the literal at this point.
The alphabetic or alphanumeric literal you have defined in your source code is empty, that is, you have a pair of quotation marks with no character between them. Your COBOL system has assumed that the literal contains one space character.
The Double Byte Character Set (DBCS) literal you have defined in your source code is empty, that is, you have a pair of quotation marks with no DBCS character between them. Your COBOL system has assumed that the literal is two characters long, and that it has a value of spaces.
You have omitted the word DIVISION from a Division header, or you have spelled it incorrectly. Your COBOL system has assumed that DIVISION is what was meant.
You have omitted the word SECTION from a Section header, or you have spelled it incorrectly. Your COBOL system has assumed that SECTION is what was meant.
You have omitted a period in a place where one is expected by the rules of COBOL syntax. Your COBOL system has assumed the period is present.
You have included the OCCURS integer-1 TO integer-2 DEPENDING clause in your source code, but the value given for integer-1 is greater than that for integer-2, which is against the rules of COBOL syntax. Your COBOL system has effectively changed the value of integer-1 to 0.
You have incorrectly coded the SIGN clause because you have included the word CHARACTER, which is not required, but you have omitted the required word SEPARATE. Your COBOL system has assumed that you intended the clause to be SIGN IS LEADING (or TRAILING) SEPARATE CHARACTER.
You have tried to REDEFINE a data item in the File or Communication Section but the data item is an 01 level item. Level 01 items for the same FD or CD automatically redefine one another.
You have tried to assign a value to a data item defined in the File Section or the Linkage Section. The VALUE clause is ignored.
You have specified a sign where one is not expected, for example, you have used the AFTER ADVANCING +1 or BEFORE ADVANCING -2 clause to the WRITE statement. Your COBOL system ignores the sign, and treats the digits as a positive value.
You have defined a numeric data item (that is, PIC 9) and you have tried to assign a signed number as its value. Your COBOL system ignores the sign you have specified. Where you are trying to move a number with a negative sign into a numeric field, the result is not as expected.
You are using a program converted from RM/COBOL that contains a COMP-6 numeric data item which has been converted to a COMP numeric data item. As a result of this conversion, less data space might have been allocated to the numeric data item and, therefore, your COBOL system adds leading binary zeros to pad the space, if required.
Your program begins with an 01 level entry. It is assumed that this is the first item of the Working-Storage Section.
A numeric value has been specified for a nonnumeric data item. The data item is filled with spaces.
A move of one edited field to another is treated as an alphanumeric move.
A MOVE statement is trying to MOVE a nonnumeric literal to a numeric data item. This cannot be done. To avoid undefined results, ZERO is moved to the target data item.
A numeric literal is being used in relation to a nonnumeric data item; for example, as the VALUE of an 88 level entry attached to a nonnumeric data item. The literal is converted to an alphanumeric literal.
A statement would cause invalid data to be contained in an alphabetic data item. Your COBOL system executes the statement as written.
A MOVE statement is trying to move a noninteger item to an alphanumeric data item. The decimal point is ignored and all the digits moved as if they constituted an integer.
Two files specified in a SORT or MERGE statement are defined as sharing the same area. The files are allocated different areas.
A SORT file has been referenced in more than one SAME SORT (-MERGE) AREA clause. The files are allocated different areas.
Two files in a SORT or MERGE statement are defined as sharing the same record area. The files are allocated different record areas.
Two files in a SORT or MERGE statement are defined as sharing the same sort (-merge) area. The files are allocated different sort-merge areas.
You have moved either an alphabetic, alphabetic justified, edited alphabetic or edited alphanumeric field to a numeric display field. The source field has been treated as though it were a numeric field.
The specified key is greater in length than the minimum size of the record.
The specified key has the same starting position in the file's record as a previously defined key.
You are trying to perform structure animation of a program in which a PERFORM THRU statement performs sections in the Declaratives.
Resolution:
Normal animation can be performed, but not structure animation.
You have specified the word ALL more than once in an ALL literal.
Resolution:
We recommend that you remove any repetition of the word ALL, although any
further occurrences are actually ignored.
You have specified a directive which has no meaning on your database manager
Inline directives ($SET statements) and conditional compilation conflict with the selected flagging dialect.
Resolution:
Embedded directives may be set within a comment so that the code is
compatible with the selected flagging dialect. To use this feature you
must set the DIRECTIVES-IN-COMMENTS compiler directive.
See Also:
The DIRECTIVES-IN-COMMENTS Compiler directive in the chapter
Directives
for Compiler in your Server Express User's Guide
You have used a negative integer where a positive integer was expected. Your COBOL system has ignored the negative sign.
Hexadecimal constants should be specified in pairs. The constant contains an odd number of characters and a leading zero has been assumed.
You have coded a source line greater than 80 characters. Your chosen flagging dialect does not support this.
You have placed one period immediately following another period. This is not against the rules of COBOL syntax, but it might indicate a fault in your program, for example, you might have wanted to include a line of source code here.
You have placed a hyphen in column 7, but the rest of the line contains no other code. The next line should also contain a hyphen in column 7, to continue correctly.
You have assigned a level of 77 to a data item in the File Section which is against the rules of COBOL syntax. Your COBOL system assumes that you had intended to code this as an 01 level item, and processes it as such.
Your COBOL system found no matching data items for the CORRESPONDING clause, so no intermediate code is produced for this statement.
You have used the BY operand with the verb PERFORM, but the value you have specified for the increment is zero. Your COBOL system produces code to execute this statement, but the value is never incremented.
The COMP subset code you have written could be rewritten to execute more efficiently.
You have written your code so that a signed numeric field is compared with a group item. Your COBOL system has treated the signed numeric field as an alphanumeric field for the comparison. There are no problems with comparing a signed numeric field with an elementary item.
Your program includes the USE FOR DEBUGGING statement in a section in the Declaratives of your Procedure Division, but you have not included the WITH DEBUGGING MODE clause in the Source-Computer paragraph. Your COBOL system ignores all code in this section.
In the ALPHABET clause the first literal that is specified has a value greater than that of the second, for example, P THRU D. Your COBOL system accepts this as written, that is, the characters are processed in reverse order.
You have tried to access an item beyond the end of a table. Your COBOL system generates code to access the appropriate line of code beyond the end of the table, but the result of this is undefined.
Your program contains a conditional statement which has not been followed by an imperative statement. Your COBOL system executes the code, but the result of this might be undefined.
You have assigned more than one external file reference to a SELECT ... ASSIGN clause. Your COBOL system accepts the first external file reference, but treats all remaining external file references in that clause as documentary.
You are using a program converted from DG Interactive COBOL to this COBOL that contains a SAME AREA clause. Your COBOL system has assumed that the SAME RECORD AREA clause is what was meant.
The qualifier used with a DISPLAY only field, or in a DISPLAY statement, can be used only with an ACCEPT. It is ignored.
As an example, PIC ++Z.ZZ is treated as PIC +++.++.
The index used to subscript a table item is not one used in the INDEXED BY clause for this table. The results are unpredictable.
The definition of a record following an FD clause is smaller than the minimum size specified in the RECORD CONTAINS phrase of that FD clause.
The definition of a record following an FD clause is larger than the maximum size specified in the RECORD CONTAINS phrase of that FD clause.
A data item in the File or Linkage Section cannot be given a value. The VALUE clause specified is ignored.
In all cases a period must be followed by a space.
An EXHIBIT statement has been used without the NAMED or CHANGED phrase. The resulting display is formatted by separating each item with a space.
You are using a program converted from RM/COBOL to this COBOL that contains a CALL ... USING literal statement. Your COBOL system has assumed that CALL ... USING BY CONTENT literal is what was meant.
A punctuation character should be followed by a space.
In accordance with ANS85 specifications, the relational operator "=" is considered to be a COBOL reserved word; all reserved words must be both preceded and delimited by a space.
This MOVE statement might cause a double-byte data item to be corrupted by changing one byte of a double-byte pair.
The source has no STOP RUN, GOBACK or EXIT PROGRAM statement. Your COBOL system automatically inserts an EXIT statement followed by a STOP RUN statement following the last line in the program. However, this might not have the effect you desire.
The program flow prevents the statement flagged from being executed.
This error might be produced when, for example, an INITIALIZE statement does not cause any code to be created. It is an indication that the statement can be removed from the program. If the error is ignored the effect is as if the statement were removed.
Your COBOL system is unable to check that the contents of a DBCS literal are valid. If the contents are invalid the results are unpredictable.
The SQL processor generated a warning. Check your SQL documentation for further details.
The KEPT phrase has not been included in your multiple record locked file.
The procedure-name after the THRU comes earlier in the source program than the one before the THRU.
In a MOVE, ADD or SUBTRACT CORRESPONDING, the sending group contains an item, data-name, which is ambiguous in the receiving group.
Resolution:
Although data-name occurs in both the sending and receiving
groups, no relevant MOVE, ADD or SUBTRACT is generated: this is in
accordance with ANSI defined behavior.
You have specified a MOVE to a target whose starting position is before the ending position of the source data item.
You have redefined a COMP-5 data item. Porting your code to other environments might produce inconsistent results.
You have used reference modification on a COMP-5 data item. Porting your code to other environments might produce inconsistent results.
The MEMORY SIZE clause is treated as documentary.
The MULTIPLE FILE TAPE clause is treated as documentary.
The program defined as COMMON is a main program, not a nested program.
See Also:
The REENTRANT Compiler directive in the chapter Directives
for Compiler in your Server Express User's Guide
See Also:
The REENTRANT Compiler directive in the chapter Directives
for Compiler in your Server Express User's Guide
A table SORT containing a USING phrase gives different run-time results to Siemens BS2000 when there are more elements in the source table than can be contained in the destination table.
A call to a COBOL run-time library routine (where the name begins CBL_) has been specified partly or all in lower case. This is not portable and will not work on operating systems where names are case-sensitive.
A reference to a table item has fewer subscripts than dimensions. Additional subscripts are assumed, all taking the default value 1.
BS2000 Job variable names are limited to 10 characters.
Using the Siemens BS2000 dialect, the maximum allowable length of a literal is 180 characters.
The directive setting causes behavior different from that of the dialect for which flagging was selected. It is processed as requested.
Messages of this type occur if you have set the FLAGCD directive. Each directive that can be reported has a different error number between 2000 and 2199.
See Also:
The FLAGCD Compiler directive in the chapter Directives
for Compiler in your Server Express User's Guide
Copyright © 2000 MERANT International Limited. All rights reserved.
This document and the proprietary marks and names
used herein are protected by international law.
Introduction | Code Generation Error Messages |