|
INVALID SECTION NUMBER number
Conclusão: 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.
Ação do sistema: The statement is not executed.
Resposta ao Desenvolvedor: 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
© Copyright IBM Corp.
|