This message is used by %NOTE statements with a return code of 0.
The SQL suboption has been specified for the PP option, but the program contains no EXEC SQL statements other than possibly EXEC SQL INCLUDE statements. The DBRMLIB will not be updated.
A comment ends on a different line than it begins. This may indicate that an end-of-comment delimiter is missing.
A string ends on a different line than it begins. This may indicate that a closing quote is missing.
This message is used to report DB2 backend messages with a return code of 0.
This message is used by %NOTE statements with a return code of 4.
Attributes and declares must be consistent.
%a: proc; %end; %dcl a;
Attributes must be consistent.
dcl a fixed char;
A comment ends in a different file than it begins. This may indicate that an end-of-comment statement is missing.
A string ends in a different file than it begins. This may indicate that a closing quote is missing.
A delimiter (for example, a blank or a comma) is required between all identifiers and constants.
dcl 1 a, 2 b, 3c;
Using one END statement to close more than one group of statements is permitted, but it may indicate a coding error.
The indicated character is missing, and there are no more characters in the source. The missing character has been inserted by the parser in order to correct your source.
The indicated character is missing and has been inserted by the parser in order to correct your source.
%dcl jump fixed; %skip %jump = 2;
This message is used to report DB2 backend messages with a return code of 4.
The %CONTROL statement must be followed by FORMAT or NOFORMAT option enclosed in parentheses and then a semicolon.
Skip amounts greater than 999 are not supported.
%skip(2000);
The CICS option must be in effect if the source contains EXEC CICS statements.
The CSPM option must be in effect if the source contains EXEC CSPM statements.
The DLI option must be in effect if the source contains EXEC DLI statements.
WHEN or OTHERWISE clauses are not required on SELECT statements, but their absence may indicate a coding error.
SELECT statements do not require WHEN clauses, but their absence may indicate a coding error.
A FIXED BINARY constant must contain 31 or fewer digits.
The maximum precision for FIXED DECIMAL constants is specified by the FIXEDDEC suboption of the LIMITS compiler option.
Float binary constants are limited to 64 digits.
Float decimal constants are limited to 18 digits.
The precision for a float literal is implied by the number of digits in its mantissa. For instance 1e99 is implicitly FLOAT DECIMAL(1), but the value 1e99 is larger than the largest value a FLOAT DECIMAL(1) can hold.
The named option is not part of the PL/I language definition as specified in the LANGLVL compiler option.
The specified suboption is not one of the supported suboptions of the named option.
*process pp(macro(’fixed(long)’));
The named option requires a suboption.
*process pp(macro(’fixed’));
A closing parenthesis is missing in the specification of the named option.
*process pp(macro(’fixed(bin’));
The named option is not, in fact, an option.
*process pp(macro(’float’));
The %LINE directive must be followed, with optional intervening blanks, by a parenthesis, a line number, a comma, a file name and a closing parenthesis.
%line( 19, test.pli );
All variables should be declared.
To eliminate this message, apply the CHAR or BIT built-in function to the first argument.
dcl i fixed bin; display( substr(i,4) );
An argument to the function reference is missing. A null string or zero will be passed, as appropriate, for the missing argument.
%dcl a fixed; %a = max(n,);
This message is not produced if the LEAVE statement specifies a label. In the following loop, the LEAVE statement will cause only the immediately enclosing DO-group to be exited; the loop will not be exited.
do i = 1 to n; if a(i) > 0 then do; call f; leave; end; else; end;
This message is produced when a variable is compared to a constant equal to the largest or smallest value that the variable could assume. In the following loop, the variable x can never be greater than 99, and hence the implied comparison executed each time through the loop will always result in a ’1’b.
do x pic’99’; do x = 1 to 99; end;
For a structure named X with first child named X, a reference to X would by PL/I rules be resolved to the parent. But references to structures containing structures are invalid in SQL statements and so the reference is assumed to refer to the child. The reference should be changed from X to X.X.
If a dimensioned structure named A consists of just one child B, a reference to A is treated as a reference to A.B.
If a structure named A consists of just one child B and B is an array, a reference to A is treated as a reference to A.B.
ENTRY declares should not specify a RETURNS attribute. In the example below, the "returns( char )" should be omitted.
%dcl a entry returns( char );
In a PROCEDURE statement, any RETURNS attribute should be enclosed in parentheses following the RETURNS keyword. In the example below, the "char" attribute should be specified as "returns( char )".
%a: proc char ; return( ’1729’ ); %end;
References in open code to PROCEDUREs that have parameters should always include at least an empty argument list. For example, the "display( a )" below should be "display( a() )".
%a: proc( x ) char ; dcl x char; return( ’1729’ ); %end; %act a; display( a );
There are too few arguments for the specified procedure. Null strings or zeros will be passed, as appropriate, for the missing arguments.
%a: proc( x ) char ; dcl x char; return( ’1729’ ); %end; %act a; display( a() );
There are too many arguments for the specified procedure. The excess arguments will be ignored.
%a: proc( x ) char ; dcl x char; return( ’1729’ ); %end; %act a; display( a(1,2) );
Preprocessor variables should be declared with an attribute such as CHAR or FIXED. This message could indicate that there is an extraneous comma in the declare statement as in this example.
%dcl a, char;
This message is used by %NOTE statements with a return code of 8.
This message is used to report DB2 backend messages with a return code of 8.
An integer of the form dddK must have no more than 7 digits. The specified value is replaced by 1K.
The largest accepted value for an integer with a K suffix is 2097152K. The specified value is replaced by 2097151K.
An integer of the form dddM must have no more than 4 digits. The specified value is replaced by 1M.
The largest accepted value for an integer with an M suffix is 2048M. The specified value is replaced by 2047M.
An integer of the form dddG must have no more than 1 digit. The specified value is replaced by 1G.
The largest accepted value for an integer with an G suffix is 2G. The specified value is replaced by 1G.
Numeric precisions must be positive.
Fix the DECLARE statement so that it is syntactically correct.
In certain contexts, for example after an IF-THEN clause, only executable statements are permitted. A DECLARE, DEFINE, DEFAULT or FORMAT statement has been found in one of these contexts. A null statement, (a statement consisting of only a semicolon) will be inserted before the offending statement.
The COUNTER built-in function should not be invoked more than 99999 times.
Under RULES(NOMULTICLOSE), there should be no multiple closure of groups in your source program.
The second argument to built-in functions such as COPY and REPEAT must be nonnegative.
x = copy( y, -1 );
Scale factors must be between -128 and 127 inclusive.
Scale factors must be between -128 and 127 inclusive.
The default lower bound is 1, but the upper bound must be greater than the lower bound.
dcl x(-5) fixed bin;
If the NAMEPREFIX option is specified, the names of all macro variables and procedures must start with the character specified in that option.
In a B3 literal, each character must be either 0-7.
Structure level numbers must be positive.
The maximum structure level supported is 255.
dcl 1 a, 256 b, 2 c,
An E in a FLOAT constant must be followed by at least one decimal digit (optionally preceded by a sign).
The LBOUND, HBOUND, and DIMENSION built-in functions require two arguments when applied to arrays having more than one dimension.
dcl a(5,10) fixed bin; do i = 1 to lbound(a);
The DIMENSION, HBOUND and LBOUND built-in functions require that the second argument be positive.
The second argument to the LBOUND, HBOUND, and DIMENSION built-in functions must be no greater than the number of dimensions of their array arguments.
dcl a(5,10) fixed bin; do i = 1 to lbound(a,3);
Level 1 variable names must not be repeated in the same block.
dcl a char, a fixed;
THEN keyword must be part of any IF statement.
The precision attribute must be specified only once in a DECLARE statement.
dcl a fixed(15) bin(31);
Scale factors are valid only in declarations of FIXED BIN or FiXED DEC. The first declaration below is invalid and should be changed to one of the subsequent declarations.
dcl a1 float dec(15,2); dcl a2 fixed dec(15,2); dcl a3 float dec(15);
Only scalars may be activated.
Labels may not be activated.
THEN clauses are valid only immediately after an IF <expression>.
%if a > b; %then;
ELSE clauses are valid only immediately after an IF-THEN statement.
do; if a > b then; end; else a = 0;
A Label on END statement must match a LABEL on an open DO, PROCEDURE, or SELECT statement.
a: do; ... end b;
After an OTHERWISE unit in a SELECT statement, only an END statement is valid.
select; when ( ... ) do; end; otherwise do; end; display( ... );
Any %END statement should be part of a %PROCEDURE-%END, %DO-%END or %SELECT-%END group.
During the conversion of a user expression during the compilation, the target string was found to be shorter than the source, thus causing the STRINGSIZE condition to be raised.
If all the arguments in a SUBSTR reference are constants or restricted expressions, the reference will be evaluated at compile- time and the STRINGRANGE condition will occur if the arguments do not comply with the rules described for the SUBSTR built-in function.
a = substr( ’abcdef’, 5, 4 );
LEAVE/ITERATE must specify a label on an open DO loop.
%a: do jx = 1 to 1729; %leave b; %end;
ITERATE/LEAVE statements are valid only inside DO groups.
%a: do jx = 1 to 1729; %end; %leave a;
GX literals must represent graphic strings and hence must contain a multiple of 4 hex digits.
x = ’00’gx;
A variable has been declared with an upper bound that is less than its lower bound. The upper and lower bounds will be swapped in order to correct this. For example, DECLARE x(3:1) will be changed to DECLARE x(1:3).
All identifiers must be contained in 31 bytes or less. PL/I DBCS identifiers must have 14 or fewer DBCS characters.
There is no language element of the form 1su.
dcl a(10) def b(1su, 1sub );
In a BINARY constant, each digit must be a zero or one.
In a BIT literal, each character must be either zero or one.
The indicated character is not part of the PL/I character set. This can occur if a program containing NOT or OR symbols is ported from another machine and those symbols are translated to a character that is not part of the PL/I character set. Using the NOT and OR compiler options can help avoid this problem.
In a hex literal, each character must be either 0-9 or A-F.
The statement entered could not be parsed because the specified element is invalid.
Under LANGLVL(SAA), identifiers must start with an alphabetic character or with one of the extralingual characters. They may not start with an underscore. Under LANGLVL(SAA2), identifiers may start with an underscore, although names starting with _IBM are reserved for use by IBM.
The indicated character is not part of the PL/I character set, but was immediately followed by the same character. This can occur if a program containing an OR symbol is ported from another machine and this symbol is translated to a character that is not part of the PL/I character set. Using the OR compiler option can help avoid this problem.
The indicated character is not part of the PL/I character set, but was immediately followed by an =, < or > symbol. This can occur if a program containing a NOT symbol is ported from another machine and this symbol is translated to a character that is not part of the PL/I character set. Using the NOT compiler option can help avoid this problem.
WX literals must represent unicode strings and hence must contain a multiple of 4 hex digits.
x = ’00’wx;
To determine if a statement is an assignment or another PL/I statement, many elements of the statement may need to be examined. If too many have to be examined, the compiler will flag the statement as in error. For instance, the following statement could be a DECLARE until the equal sign is encountered by the lexer.
dcl ( a, b, c ) = d;
A WHEN or OTHERWISE might be missing.
select; i = i + 1; when ( a > 0 ) ...
Extents must be positive.
dcl x char(-10);
The compiler option DEFAULT(IEEE | HEXADEC) does not match the SQL preprocessor option FLOAT(IEEE | S390). Make sure they are consistent and resubmit your job.
The level-1 DECLARE statement might be missing.
dcl 2 a, 3 b, 3 c,
A structure level is probably missing.
dcl a, 2 b, 2 c,
The use of an asterisk in place of a name is permitted only for structure or union names, or for members of structures or unions. An asterisk must not be used for a level-1 structure name that specifies the LIKE attribute.
dcl a fixed bin(15), * char(20) static init(’who can use me’);
Attributes such as CHAR must not be repeated for an element of a DECLARE statement.
dcl a char(10) char(20);
EXEC SQL statements must consist of more than merely EXEC SQL.
The INCONLY option must be specified without any other options.
In a statement-form procedure invocation, each parameter must be specified only once. Any subsequent specifications will be ignored. In the example code, 17 would be returned for both invocations of P.
%p: proc( a ) stmt returns( char ); dcl a char; return( a ); %end; %act p; display( p a(17) a(29); ); display( p(17) a(29); );
In a statement-form procedure invocation, any keyword specified must be the name of a parameter for that procedure.
%p: proc( a ) stmt returns( char ); dcl a char; return( a ); %end; %act p; display( p a(17) b(29); );
Each parameter in a procedure should be declared.
%a: proc( b, c ); dcl b fixed; %end;
Labels are not permitted on DECLARE statements or on WHEN and OTHERWISE clauses.
The BUILTIN attribute can be applied only to identifiers that are the names of built-in functions or subroutines.
The named attribute is not supported by the macro facility.
%dcl a char external;
A right parenthesis is probably missing. If this occurs in the source, all the characters after the unmatched left parenthesis in the source will be interpreted as parameters to the function. If this occurs in a replacement string, all the characters after the unmatched left parenthesis in the string will be interpreted as parameters to the function.
The source should contain END statements for all PROCEDUREs, DO groups, and SELECT statements, as well as statements for all IF-THEN and ELSE clauses.
Declarations for internal procedures are not permitted.
a: proc; dcl b entry options(byvalue); b: proc;
A WHEN or OTHERWISE clause has been found outside of a SELECT statement.
An END statement enclosing a statement such as DO or SELECT has been found before the statement required after ELSE.
do; if a > b then ... else end;
An END statement might be misplaced or a semicolon might be missing.
An END statement might be misplaced or a semicolon might be missing.
An END statement might be misplaced or a semicolon might be missing.
The source file contains statements after the END statement that closed the first PACKAGE or PROCEDURE. These statements will be ignored, but their presence may indicate a programming error.
Subscripts can be specified only for elements of an array.
Otherwise the STRINGRANGE condition would be raised.
Otherwise the STRINGRANGE condition would be raised.
Otherwise the STRINGRANGE condition would be raised.
Otherwise the STRINGRANGE condition would be raised.
The maximum number of dimensions allowed for a variable, including all inherited dimensions, is 15.
An */ was found when there was no open comment.
See the Language Reference Manual for the list of supported compiler directives.
A listing control statement, even when in a preprocessor procedure, must be preceded by a "%".
%a: proc; skip; %end;
An X literal may not contain an odd number of digits.
More arguments were specified in an ENTRY reference than were defined as parameters in that ENTRY’s declaration.
dcl e entry( fixed bin ); call e( 1, 2 );
More arguments were specified for the indicated built-in function than are supported by that built-in function.
i = acos( j, k );
The named attribute is valid only on parent structures.
dcl 1 a, 2 b union, 2 c1 fixed bin(31), 2 c2 float bin(21), ...
LIKE cannot be specified on a parent structure or union.
dcl 1 a like x, 2 b, 2 c,
The indicated keyword (UNSIGNED in the example below) is not defined in the SAA level-1 language.
dcl x fixed bin unsigned;
The definition of the SAA level-1 language does not include S, D, and Q floating-point constants.
The definition of the SAA level-1 language does not permit using underscores in numeric and hex constants.
The definition of the SAA level-1 language does not permit using asterisks for structure element names.
The definition of the SAA level-1 language does not include XN constants.
Under LANGLVL(SAA), the VERIFY and INDEX built-in functions are supposed to have exactly 2 arguments.
i = verify( s, j, k );
Under LANGLVL(SAA), the DIM, LBOUND and HBOUND built-in functions are supposed to have 2 arguments.
i = dim( a );
The named INCLUDE file was specifed in the INCLUDE suboption of the DEPRECATE option, and so any attempt to include it is flagged.
This message is used by %NOTE statements with a return code of 12.
A colon in an EXEC SQL statement must be followed by a host variable reference, and such a reference must start with an identifier.
Structures are limited to at most 15 logical levels, and so any dot-qualified reference must have at most 14 dots (or else it would imply the structure had at least 16 logical levels).
The maximum length for BIN is 255 and for VARBINARY 32704. See the Programming Guide for the maximum lengths for BLOBs, CLOBs, and DBCLOBs.
The correct syntax is SQL TYPE IS type( length ).
The correct syntax is SQL TYPE IS type( length ).
The correct syntax is SQL TYPE IS type( length ).
The correct syntax is SQL TYPE IS XML AS type( length ).
The correct syntax is SQL TYPE IS XML AS type( length ).
The correct syntax is SQL TYPE IS XML AS type( length ).
The number of arguments must match the number of parameters in the ENTRY declaration.
Macro procedures may not be nested.
Inside a procedure, statements should not begin with a percent. The %DCL in the example below should be just DCL.
%a: proc( x ) returns( char ); %dcl x char; return( ’<’ || x || ’>’ ); %end;
The compilation requires more virtual memory than is available. It may help to specify one or more of the following compiler options: NOINSOURCE, NOXREF, NOATTRIBUTES, and/or NOAGGREGATE
An expression contains the named built-in function with an argument that is not a parameter.
An expression contains the named built-in function with an argument that is not a reference.
The maximum physical level allowed is 255, but the maximum logical level is 15.
The length in BIN, VARBIN, BLOB, CLOB, and DBCLOB types must be positive.
In the macro facility, all subscripts must be scalar expressions.
This applies to the RANK built-in function.
An expression contains the named built-in function with a first argument that is not an array. This message applies, for instance, to the DIMENSION, HBOUND, and LBOUND built-in functions.
This message is used to report DB2 backend messages with a return code of 12.
If a third argument is given for one of the built-in functions INDEX or VERIFY, it must be positive.
The second argument for the built-in functions CHARACTER, BIT, and GRAPHIC must be zero or greater.
Supply the minimum number of arguments required.
%INCLUDE must be followed by a name and either a semicolon or else a second name in parenthesis and then a semicolon.
The maximum length of the file specification is 8 characters.
%INCLUDE must be followed by a file name, not just a semicolon.
The excess parameters will be removed from the proc statement.
The correct syntax is SQL TYPE IS XML AS type( length ).
The correct syntax is SQL TYPE IS XML AS type( length ).
The correct syntax is SQL TYPE IS TABLE LIKE table-name AS LOCATOR.
The correct syntax is SQL TYPE IS TABLE LIKE table-name AS LOCATOR.
The correct syntax is SQL TYPE IS TABLE LIKE table-name AS LOCATOR.
The correct syntax is SQL TYPE IS TABLE LIKE table-name AS LOCATOR.
The keywords SQL TYPE IS must be followed by a type name such as XML.
Executing such a statement would most likely cause a protection exception.
%dcl a(5:10) fixed; %a(1) = 0;
Executing such a statement would most likely cause a protection exception.
%dcl a(5:10) fixed; %a(20) = 0;
It must be possible to compute the value of the DIMENSION built-in function for an array. For example, in DECLARE A(x:y), (y-x+1) must be less than 214748648.
Arrays are limited to 2**20 elements.
The number of subscripts given for a variable must match that variable’s number of dimensions
The number of subscripts given for a variable must match that variable’s number of dimensions
Every DBCS shift-out code between the margins must have a matching DBCS shift-in code between the margins.
Array expressions may not, for instance, be assigned to structures or scalars.
All RETURN statements inside functions must specify a value to be returned.
%a: proc returns( fixed ); return; %end;
A statement of the form RETURN(x) is valid inside only PROCEDUREs that are defined with a RETURNS attribute.
%a: proc; return( ’this is invalid’ ); %end;
Under the SQL option STDSQL(YES), all host variables must be declared between SQL BEGIN DECLARE SECTION and SQL END DECLARE SECTION statements.
Functions must contain at least one RETURN statement.
The target in an assignment must be character or fixed element reference. Pseudovariables are not supported.
Statement labels must be used only in GOTO, LEAVE and ITERATE statements.
Compound concatenate assignments with fixed targets are not supported.
%dcl a fixed; %a = ’0’; %a ||= ’1’;
Compound arithmetic assignments with character targets are not supported.
%dcl a char; %a = ’0’; %a += ’1’;
The correct syntax is SQL TYPE IS XML AS type LARGE OBJECT( length ).
The correct syntax is SQL TYPE IS XML AS type LARGE OBJECT( length ).
The correct syntax is SQL TYPE IS CHARACTER LARGE OBJECT( length ).
The correct syntax is SQL TYPE IS BINARY LARGE OBJECT( length ) or SQL TYPE IS BINARY( length ).
The correct syntax is SQL TYPE IS type LARGE OBJECT( length ).
The compiler’s limit on the number of labels on a statement has been exceeded. Reduce the number of labels on the statement.
The compiler’s space for evaluating expressions has been exhausted. Rewrite the expression in terms of simpler expressions.
The result of a concatenation must not have a length greater than the maximum allowed for a string.
The result of COPY and REPEAT must not have a length greater than the maximum allowed for a string.
The only valid aggregate expression is the use of an array name as the first argument to the HBOUND or LBOUND built-in functions.
Bit operations are limited to strings of length 32767 or less.
The TRANSLATE built-in function is not supported if the second or third argument is longer than 32767 characters.
The result of a COMMENT or QUOTE built-in function must not be a string that would have length greater than the supported maximum.
If you must use INCLUDE or XINCLUDE as a macro name, put the colon on the same line as the name.
If you must use INCLUDE or XINCLUDE as a macro statement label, put the colon on the same line as the name.
If you must use INCLUDE or XINCLUDE as a macro variable name, put the equals sign in the assignment on the same line as the name. For example, change the first assignment below into the second.
%xinclude = 17; %xinclude = 17;
The target of a GOTO cannot be inside a DO loop unless the GOTO itself is in the same DO loop.
The INCLUDE file could not be found, or if found, it could not be opened.
The nesting of PROCEDURE, DO, SELECT and similar statements is greater than that supported by the compiler. Rewrite the program so that it is less complicated.
Support for the indicated built-in function has been discontinued.
Support for the indicated statement has been discontinued.
iSUB is only supported in syntax checking.
DO statements can be nested only 100 deep. Simplify the program.
IF statements can be nested only 100 deep. Simplify the program.
SELECT statements can be nested only 50 deep. Simplify the program.
Blocks must be nested only 30 deep.
Check that the CICS modules are accessible, otherwise report this error to IBM.
Report this error to IBM.
Report this error to IBM.
Report this error to IBM.
Report this error to IBM.
Report this error to IBM.
Report this error to IBM.
Report this error to IBM.
All SQL host variables must be declared within the current block scope.
All SQL host variables must be unambiguous. This can be fixed by supplying enough structure qualification.
An indicator array in an EXEC SQL statement must not be multi-dimensional.
An indicator array in an EXEC SQL statement must have bounds that are specified simply as optionally signed integers.
An indicator variable in an EXEC SQL statement must be an array if it is used with a structure.
A host variable in an EXEC SQL statement must not be multi-dimensional.
A host variable in an EXEC SQL statement must have bounds that are specified simply as optionally signed integers.
A host variable in an EXEC SQL statement must be one-dimensional and that dimension must not be specified on a parent unless the parent has the DIMACROSS attribute..
All SQL host variables must have a corresponding DB2 type. For example, while FIXED DEC(7,-2) is valid in a PL/I declaration, there is no corresponding DB2 type because DB2 requires that in FIXED DEC(p,q), q is non-negative and no greater than p.
All SQL host variables must have a corresponding DB2 type. There is no type matching a union.
A structure may be used as a host variable only if it is not an array.
A structure may be used as a host variable only if none of its members are arrays.
A structure may be used as a host variable only if none of its members are structures.
A structure may be used as a host variable only if all of its members are named.
An indicator variable must be a native, real halfword integer.
An indicator variable in an EXEC SQL statement must be an array if it is used with an array.
The named attributes, for example PARAMETER and INITIAL, are mutually exclusive.
All statement labels in any block must be unique.
x in GOTO x must have type LABEL. x must not have type FORMAT.
x in GOTO x must not be an array.
Sister procedures must have different names.
% b: proc; % end; % b: proc; % end;
The source contains either no statements or all statements that it contains are invalid.
A FIXED BINARY constant must contain 31 or fewer digits.
The maximum precision of FIXED DECIMAL constants is set by the FIXEDDEC suboption of the LIMITS compiler option.
The exponent in a FLOAT BINARY constant may contain no more than 5 digits.
The mantissa in a FLOAT BINARY constant may contain no more than 64 digits.
The exponent in a FLOAT BINARY constant may contain no more than 4 digits.
The mantissa in a FLOAT BINARY constant may contain no more than 18 digits.
The number of bytes used to represent a constant in your program must not exceed 30720. This limit holds even for bit strings where the internal representation will consume only one-eighth the number of bytes as the external representation does.
Any complex, scaled or floating point constant will be converted to an integer value.
%a = 3.1415;
G, GX, M, A and E string suffixes are not supported.
%a = ’31’e;
EXEC SQL statements are not allowed at the PACKAGE level.
In the invocation of a statement-form procedure, all characters that are not part of comments or key names should be enclosed in parentheses following one of the keys. For example, the "+" in the display statement below should not be present.
%a: proc( x ) stmt returns( char ); dcl x char; return( 1729 ); %end; %act a; display( a + x(5); );
Under the FIXED(BIN), decimal constants that represent any valid FIXED BIN(31) number are supported.
EXEC SQL INCLUDE must be followed by one identifier and then by a semicolon.
Check that the SQL modules are accessible, otherwise report this error to IBM.
Switch to a more current level of DB2.
The EXEC SQL statement must be fewer than 500K bytes.
The EXEC SQL statement must use no more than 1500 host variables.
When invoking the SQL preprocessor on Windows or AIX, the DBNAME option must be specified, and the option must specify a valid database name.
Compilation will terminate when the number of messages has exceeded the limit set in the FLAG compiler option.
Evaluation of an expression raised the named condition.
%a = a / 0;
Each identifier in a parameter list must be unique.
a: proc( b, c, b );
ITERATE is not valid inside type-I do groups.
RETURN statements are valid only inside procedures.
INCLUDE statements are permitted only outside any preprocessor procedures.
%a: proc; include sample; %end;
Parameters to macro procedures must be no longer than 32767 bytes.
An end-of-comment marker is probably missing.
A closing quote is probably missing.
An end-of-comment marker is probably missing.
A closing quote is probably missing.
ANSWER statements are valid only inside procedures.
ANSWER statements are not valid inside functions.
%a: proc returns( char ); answer( ’this is invalid’ ); return( ’this is ok however’ ); %end; %b: proc; answer( ’this is valid’ ); %end;
A rescan of a replacement string or a rescan of a string returned by a preprocessor has caused further replacement leading to another rescan etc., and the maximum depth of rescanning was exceeded.
For instance, the following macro, which is meant to count the number of dcl statements in a compilation, would produce this message. If the %ACTIVATE statement specified NORESCAN, it would work correctly.
%dcl dcl_Count fixed; %dcl_Count = 0; %dcl: proc returns( char ); dcl_count = dcl_count + 1; return( ’dcl’ ); %end; %activate dcl;
DBCS shift codes must be paired.
DBCS shift codes must be paired.
Hex strings (strings ending in one of the suffixes X, BX, B4, GX or XN), bit strings, (strings ending in the suffix B), and character strings not ending in the suffix M must contain only SBCS characters.
Mixed SBCS and DBCS is allowed only in M constants.
Outside of comments, SBCS can be encoded as DBCS only as part of an identifier.
A procedure must not invoke itself directly or indirectly.
The named built-in function may be used only inside procedures.
A procedure must be defined (correctly) before it can be invoked.
The source ended during a scan when a right parenthesis or semicolon was required.
%a: proc() stmt returns( char ); return( ’1729’ ); %end; %dcl a entry; a /* and no more source follows */
The named source file could not be opened. Make sure that the file is named correctly, that it exists and that it is readable.
This message indicates that there is an error in the macro preprocessor. Please report the problem to IBM.
This message indicates that there is an error in the front end of the compiler. Please report the problem to IBM.
This message is used by %NOTE statements with a return code of 16.