Text |
Missing/invalid syntax; undefined variable name/keyword. |
Explanation |
The syntax checker detected an invalid statement name or keyword. Probable cause is a misspelling of a statement name, keyword or variable name, or an error in a sub-clause of the previous statement. |
Action |
Correct error. |
Text |
No file is available with specified name or number. |
Explanation |
- The file name was misspelt; or - the file is not defined in the data dictionary; or - you are not authorized to access the file. |
Action |
Use a correct file name; or define the file in the data dictionary; or contact your Natural administrator for access authorization to the file. |
Text |
Invalid character string for file name or file number. |
Explanation |
An invalid syntax has been supplied where Natural expected to locate a file name or number. Only characters that are available in the construction of variable names may be used for the construction of a file name, i.e., alphabetical characters (first character must be alphabetical), numeric characters, and the following special characters: - hyphen-minus ̲ underscore @ commercial at / slash # number sign $ dollar sign & ampersand On mainframe platforms, "@" is the character with the hexadecimal value H'7C'. |
Action |
Eliminate invalid characters from file identification. |
Text |
DEFINE DATA must be the first statement if present. |
Explanation |
If DEFINE DATA is used in a program, it must always be the first statement. |
Action |
Correct error. |
Text |
Closing parenthesis missing in arithmetic/logical expression. |
Explanation |
Parentheses may be used to control the evaluation of arithmetic and logical expressions. If parentheses are used, they must always be paired (opening and closing parentheses). |
Action |
Check the use of parentheses in the arithmetic or logical expression. |
Text |
ESCAPE statement used when no processing loop active. |
Explanation |
The ESCAPE statement may only be used within an active processing loop. |
Action |
Check structure of processing loops and place ESCAPE statement correctly within an active loop. |
Text |
Invalid THRU or TO clause in READ LOGICAL or HISTOGRAM. |
Explanation |
In a READ LOGICAL or HISTOGRAM statement, when specifying a - THRU clause, an ending value must be supplied; - TO clause, a starting value and an ending value must be supplied. A starting or ending value must be either a constant or the content of a variable. |
Action |
Correct error in program. |
Text |
Invalid search syntax. |
Explanation |
1) A field used in a WITH clause must be a descriptor. A group notation is not permitted. 2) When the ENDING AT clause of a READ statement uses a superdescriptor as the search key, the superdescriptor must be defined with the VIEW in the data area (if present). 3) When the READ statement is related to DB2, the search variable must be part of the VIEW. |
Action |
1) The LIST FILE command may be used to ascertain whether a field is defined as a descriptor in the data dictionary. 2) Add the superdescriptor to the VIEW. |
Text |
Invalid relational operator in a relational expression. |
Explanation |
A relational expression in a logical criterion contains an invalid relational operator. The following relational operators may be used in a relational expression: = or EQ or EQUAL TO <> or NE or NOTEQUAL < or LT or LESS THAN <= or LE or LESS EQUAL > or GT or GREATER THAN >= or GE or GREATER EQUAL See the Natural documentation, Logical Condition Criteria, for further information. |
Action |
Correct the construction of the relational expression. |
Text |
Error in value specification in a relational expression. |
Explanation |
The search criterion is correct up to the relational operator, but the specification of the value to be compared is either missing or invalid. If the value was specified using a variable, the variable must have been previously defined. |
Action |
Ensure that alpha descriptor values are enclosed in apostrophes and that numeric values are not. Reference only variables that have been defined previously. |
Text |
Invalid format combination in a relational expression. |
Explanation |
In a relational expression, values being compared with a relational operator must have the same format, that is: alpha rel-operator alpha numeric rel-operator numeric binary rel-operator binary |
Action |
Correct error. |
Text |
Length adjustment of search variable not possible. |
Explanation |
The value supplied in the relational expression is longer than the length defined for the search variable. The length of the search variable can be dynamically adjusted to the length of the value supplied if only one value exists. (This is not true for expressions using the 'OR =', 'THRU' or 'BUT NOT' operations.) |
Action |
If more than one value exists, use appropriate length specification for search variable. |
Text |
Descriptor name or ISN missing after 'BY' in READ. |
Explanation |
The word 'BY' is specified to express a sequence for a READ operation. If BY is used, either the word 'ISN' or the name of a descriptor must be specified to express the sequence in which the records are to be read. |
Action |
Either do not specify BY, or specify either ISN or the name of a descriptor. |
Text |
Error in SORTED BY clause of FIND statement. |
Explanation |
The field specified for an Adabas sort is not a descriptor; or no sort descriptor was specified; or more than 3 sort fields were specified. |
Action |
Correct error. |
Text |
Parenthesis missing in Natural system function notation. |
Explanation |
The argument for a Natural system function must be enclosed in parentheses. If a variable has been given a name which is also the name of a Natural system function, this error message will also occur. |
Action |
Either enclose the argument for the function in parentheses; or change the name of the variable so that it does not conflict with the name of a Natural system function. |
Text |
Invalid parameter in INCLUDE statement or copycode. |
Explanation |
The number of a parameter in the copycode |
Action |
Correct error in INCLUDE statement or in copycode. |
Text |
MASK or SCAN used incorrectly, or incorrect mask length. |
Explanation |
MASK and SCAN can only be specified following an EQ or NE operator. The length of the mask must be less than or equal to the length of the field. Only the following characters may be used in a mask: . ignore position in variable DD check for valid day in month U check for upper-case alpha MM check for valid month in year N check for numeric YY check for valid current year H check for hexadec. character YYYY check for valid year in century P check for printable char. JJJ check for valid Julian day L check for lower-case alpha N1-N2 check against range of values C check for alphanumeric S check for special printable A check for upper/lower alpha X check against position in value |
Action |
Ensure that the mask is specified correctly. |
Text |
Error in construction of arithmetic operand. |
Explanation |
The name of a variable has been misspelt in an arithmetic expression; or a wrong character has been used in the construction of a numeric constant; or the argument of a square root function has been constructed incorrectly. |
Action |
Check program and correct error. |
Text |
Error in receiving field of arithmetic statement. |
Explanation |
The receiving field of an arithmetic operation must consist of a valid variable reference. The error may be caused by a misspelt variable name or by not supplying the character '=' in ASSIGN/COMPUTE. It can also appear if the target variable is a system function like INT, SIN, etc. Ensure that the target field of MULTIPLY/DIVIDE is not a constant. |
Action |
Check program and correct error. |
Text |
Word 'BY' missing in MULTIPLY statement. |
Explanation |
In a MULTIPLY statement, the word 'BY' is required between the two operands to be multiplied, for example: MULTIPLY 1 BY 2 GIVING #RESULT |
Action |
Check program and correct error. |
Text |
Word 'INTO' missing in DIVIDE statement. |
Explanation |
In a DIVIDE statement, the two operands must be separated by the word 'INTO', for example: DIVIDE 2 INTO 7 GIVING #RESULT |
Action |
Check program and correct error. |
Text |
Word 'TO' missing in MOVE statement. |
Explanation |
The word 'TO' is required in a MOVE statement to indicate the result field(s) into which the values are to be moved. Examples: MOVE 1 TO #A MOVE #B TO #C #D #E #F |
Action |
Check program and correct error. |
Text |
Error in specification of format element. |
Explanation |
Error in the specification of a format element: either in the FORMAT statement, or in a format specification following an input/output statement or an individual element. Format elements must be identified using the proper format element keywords. See the Natural session parameters documentation for details. |
Action |
Check program and correct error. |
Text |
In VERT mode, 'AS' must be followed by 'text' or 'CAP'. |
Explanation |
DISPLAY VERTICALLY AS indicates that a special option is desired for the vertical display of elements. No such option was encountered, either because of a misspelling or because no options were provided. Possible options are: - DISPLAY VERTICALLY AS 'header text' - DISPLAY VERTICALLY AS CAPTIONED (or DISPLAY VERTICALLY AS CAP) - DISPLAY VERTICALLY AS 'header text' CAPTIONED See the Natural statements documentation for details. |
Action |
Check program and correct error. |
Text |
Closing parenthesis missing in system function argument. |
Explanation |
In a SORT statement, multiple argument variables can be specified for the same Natural system function. The list of argument variables must be enclosed in parentheses for all argument fields that are to be evaluated for the same system function. |
Action |
Check program and correct error. |
Text |
Output element after 'VERT' is missing or invalid. |
Explanation |
'VERT(ICALLY)' was specified in a DISPLAY statement to indicate that output elements are to be displayed underneath one another; however, no valid output element was encountered after the 'VERT'. You have probably misspelt a variable name or forgotten an apostrophe at the beginning of a text string. |
Action |
Check program and correct error. |
Text |
Error in value specification. |
Explanation |
A value may be specified either as a constant or as the reference to an already existing variable or database field. Either a misspelt variable name was supplied, or the leading apostrophe for a constant was omitted. |
Action |
Correct error. |
Text |
READ LOGICAL used without required descriptor. |
Explanation |
A READ LOGICAL statement requires the specification of a descriptor which is to be used to control the read sequence. If no sequence is specified in the READ LOGICAL statement, Natural attempts to use the default sequence as defined for the file in the Data Dictionary. If no descriptor is specified in the READ LOGICAL statement, and no default sequence is defined in the Data Dictionary, this error message will be displayed. |
Action |
Ensure that the sequence descriptor is specified by either of the methods described above. |
Text |
Descriptor field missing/invalid syntax in HISTOGRAM. |
Explanation |
A HISTOGRAM statement reads the values for a descriptor. The values are read using the database inverted list. Therefore, only descriptor fields may be specified. |
Action |
Supply a valid descriptor. |
Text |
A relational expression is missing or invalid. |
Explanation |
The following relational expressions are valid: = or EQ or EQUAL TO <> or NE or NOTEQUAL < or LT or LESS THAN <= or LE or LESS EQUAL > or GT or GREATER THAN >= or GE or GREATER EQUAL See the Natural documentation, Logical Condition Criteria, for further information. |
Action |
Correct the construction of the relational expression. |
Text |
Opening/closing parenthesis missing in REDEFINE. |
Explanation |
Opening and closing parentheses are required to begin/end the definition of a new variable using REDEFINE. Example: REDEFINE #A (#A(N3) #A2(A7)) |
Action |
Correct error. |
Text |
Invalid break control field in AT BREAK or IF BREAK. |
Explanation |
In an AT BREAK statement or IF BREAK condition, a database field or user-defined variable may be used to indicate the break control field. If a user-defined variable is used, it must have been previously defined. A break control variable can have any format, except format 'C' (attribute control). The maximum length of a break variable is 253 bytes for alphanumeric and 126 bytes for binary variables. If you wish to use an alphanumeric variable with a larger size, you have to reduce the number of break positions with an explicit '/n/' clause. The same applies for variables defined as alpha DYNAMIC. Example: .. assume definitions #A300(A300) #DYN(A) DYNAMIC AT BREAK OF #A300 /10/ IF BREAK OF #DYN /177/ |
Action |
Correct error. |
Text |
Numeric field for number of lines invalid or missing. |
Explanation |
The number of lines to be skipped in a SKIP, EJECT or NEWPAGE statement must be specified with a numeric constant or variable. |
Action |
Check program and correct error. |
Text |
'DATA' not in AT START OF DATA/'PAGE' in AT TOP OF PAGE. |
Explanation |
The word 'DATA' is required in the construction of an AT START OF DATA statement; the word 'PAGE' is missing in an AT TOP OF PAGE statement. It has either been misspelt or forgotten. |
Action |
Check program and correct error. |
Text |
Name missing or specified incorrectly. |
Explanation |
This error occurs under one of the following conditions: - At compilation time, if the object name (e.g. subprogram, dialog) specified in the statement is incorrect, either by format or length. - At runtime, if a dynamic alphanumeric variable is used to specify the object name and the current length of the variable exceeds the maximum of 8 characters. |
Action |
Specify the name as a 1- to 8-character constant or variable (A1-A8) or do not use a dynamic variable which is longer than 8 characters. |
Text |
Invalid field reference in REDEFINE base field. |
Explanation |
The field to be used as the base field in a REDEFINE statement may be a user-defined variable or a database field. If it is a user-defined variable, it must have been previously defined. If it is a database field, it must be a field within an active loop. |
Action |
Check program and correct error. |
Text |
Sum of field lengths in REDEFINE > length of base field .... |
Explanation |
The accumulated length of all new fields in a REDEFINE statement must be less than or equal to the length of the base field, counted in bytes. When a group contains a field of type HANDLE or DYNAMIC, you can only redefine the fields before the HANDLE or DYNAMIC variable. |
Action |
Check program and correct error. |
Text |
Only one AT TOP OF PAGE statement allowed per report. |
Explanation |
The AT TOP OF PAGE statement may only be specified once for the same report. If multiple actions are to be executed at the top of a page depending on various conditions, they must be specified within the same AT TOP OF PAGE statement and separated by the appropriate logical conditions. |
Action |
Check program and correct error. |
Text |
Only one AT END OF PAGE statement allowed per report. |
Explanation |
The AT END OF PAGE statement may be specified only once per report. If multiple actions are desired under the same end-of-page condition, they must be specified within the same AT END OF PAGE statement and separated by the appropriate logical conditions. |
Action |
Check program and correct error. |
Text |
Invalid specification of CIPHER code. |
Explanation |
The cipher code for a database file may be specified either as a numeric constant (8 digits) or the content of a numeric variable. The numeric variable must be defined with format/length N8. An equal sign (=) must be specified between the word CIPHER and the value. If the value is supplied via a numeric variable, this numeric variable cannot be a REDEFINE variable. |
Action |
Check program and correct error. |
Text |
Invalid password construction. |
Explanation |
The Adabas password may be provided as an alphanumeric constant or by using an alphanumeric variable. An equal sign (=) must be specified between the word PASSWORD and the value for the password. |
Action |
Check program and correct error. |
Text |
Output element not defined, or indexes incorrect. |
Explanation |
This error may be caused by: - an error in the construction of the name of an output element; - a reference to a variable that has not been previously defined; - a misspelling of a keyword; - an invalid index specification. |
Action |
Check program and correct error. |
Text |
Invalid reference in UPDATE or DELETE statement. |
Explanation |
Either the construction of the reference is wrong or the reference is not allowed. A reference can only be made to a FIND, GET or READ statement. An UPDATE, GET or DELETE statement must not be on the same line as a FIND statement. No reference is possible to a GET SAME statement. In this case, use a reference to the statement that made the first access to the record. |
Action |
Check for the above causes and correct any errors. |
Text |
Error in parameter field list for UPDATE or STORE. |
Explanation |
Only fields from one file may be updated with one UPDATE or STORE statement. Values for fields may be constants, the contents of user-defined variables, or the contents of a database fields. |
Action |
Check the parameter list and correct any errors. |
Text |
Error in variable definition. |
Explanation |
One of the following errors was detected: - In an OBTAIN statement, the field referenced was not contained within a database array. - An error in a statement reference and/or field length notation was detected. - An error in the index notation was detected. OBTAIN ARRAY (1:5) -> valid OBTAIN ARRAY (#I:#J) -> INVALID OBTAIN ARRAY (#I:#I + 9) -> valid |
Action |
Correct error. |
Text |
Illegal format combination of field/value in UPDATE/STORE. |
Explanation |
The value assignment for field/value combinations in the parameter list is performed individually for each combination according to the general rules for value assignment. An attempt was made to assign a value of one format to a field of incompatible format. |
Action |
Check program and correct error. |
Text |
Error in value entry for UPDATE or STORE. |
Explanation |
The value in an UPDATE or STORE statement may be specified as a constant or as the content of a user-defined variable or database field. If a database field is used as a value, it must reference a currently active FIND/READ/GET loop. |
Action |
Check program and correct error. |
Text |
Error in reference for GET SAME statement. |
Explanation |
The GET SAME statement refers by default to the last active access to the database; a reference to another specific database access may be explicitly specified. If an explicit reference is used, the database access must still be active. |
Action |
Correct the error in the GET SAME reference. |