-144 INVALID SECTION NUMBER number
Explanation
One of the following:
- The user attempted to execute an invalid section.
- This release of DB2® does not support the SQL statement.
- The section number in the call parameter list is one of these:
- Negative
- An invalid duplicate
- Greater than the maximum section number of the DBRM or package
System action
The statement cannot be processed.
Programmer response
For case 1: If you are executing a package
that was bound with SQLERROR(CONTINUE), determine whether the statement
in question was bound as a valid section. You can use the following
statements to query the DB2 catalog:
SELECT SQLERROR
FROM SYSIBM.SYSPACKAGE
WHERE COLLID = collection-id AND
NAME = package-id AND
VERSION = version-name;
If that query returns 'C', the
package was bound with SQLERROR(CONTINUE). SELECT STMTNO, TEXT
FROM SYSIBM.SYSPACKSTMT
WHERE COLLID = collection-id AND
NAME = package-id AND
VERSION = version-name AND
SECTNO = number AND
BINDERROR = 'Y';
If that query returns any rows, the section
is invalid. Refer to the error messages issued during the bind to
determine the cause. Correct any errors and bind the package again,
using the REPLACE option.For case 2: If the DB2 system has fallen back to a previous release, determine whether there are any SQL statements with a section number of zero that are not supported by that release. You can use the following statements to query the DB2 catalog.
When
executing from a DBRM, use:
SELECT *
FROM SYSIBM.SYSSTMT
WHERE SECTNO = 0
ORDER BY NAME, PLNAME, STMTNO, SEQNO;
When executing
from a package, use:
SELECT *
FROM SYSIBM.SYSPACKSTMT
WHERE SECTNO = 0
ORDER BY COLLID, NAME, VERSION, STMTNO, SEQNO;
For case 3: Examine the application to determine whether the call parameter list was changed in some way. In general, you should not attempt to change the output of the precompiler.
SQLSTATE
58003