Menu principal                 [Fechar]


SQL - SQLCODE's - Códigos negativos


Volta a página anterior

Volta ao Menu Principal


Desenvolvido por Carlos Alberto Dornelles - Analista de Sistemas - Brasília DF.


SQLCode -144

INVALID SECTION NUMBER number

Conclusão: One of the following:

  1. The user attempted to execute an invalid section.
  2. This release of DB2 does not support the SQL statement.
  3. 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.