Archives par mot-clé : -144

CODE RETOUR -144

INVALID SECTION NUMBER number

Explication :

L’un des éléments suivants :

  • L’utilisateur a tenté d’exécuter une section non valide.
  • Cette version de DB2 ne prend pas en charge l’instruction SQL.
  • Le numéro de section dans la liste des paramètres d’appel est l’un des suivants :
    1. Négatif
    2. Un doublon invalide
    3. Supérieur au numéro de section maximal du DBRM ou du package

Action du système :

L’instruction ne peut pas être traitée.

Réponse du programmeur :
Pour le cas 1 : si vous exécutez un package lié avec SQLERROR(CONTINUE), déterminez si l’instruction en question était liée en tant que section valide. Vous pouvez utiliser les instructions suivantes pour interroger le catalogue Db2 :

  SELECT SQLERROR
FROM   SYSIBM.SYSPACKAGE
WHERE  COLLID    = collection-id AND
NAME      = package-id    AND
VERSION   = version-name;

Si cette requête renvoie ‘C’, le package était lié avec 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';

Si cette requête renvoie des lignes, la section n’est pas valide. Reportez-vous aux messages d’erreur émis pendant la liaison pour en déterminer la cause. Corrigez les erreurs et liez à nouveau le package à l’aide de l’option REPLACE.

Pour le cas 2 : Si le système Db2 est revenu à une version précédente, déterminez s’il existe des instructions SQL avec un numéro de section de zéro qui ne sont pas prises en charge par cette version. Vous pouvez utiliser les instructions suivantes pour interroger le catalogue Db2.

Lors de l’exécution à partir d’un DBRM, utilisez :

  SELECT *
FROM   SYSIBM.SYSSTMT
WHERE  SECTNO = 0
ORDER BY NAME, PLNAME, STMTNO, SEQNO;

Lors de l’exécution à partir d’un package, utilisez :

  SELECT *
FROM   SYSIBM.SYSPACKSTMT
WHERE  SECTNO = 0
ORDER BY COLLID, NAME, VERSION, STMTNO, SEQNO;

Pour le cas 3 : Examinez l’application pour déterminer si la liste des paramètres d’appel a été modifiée d’une manière ou d’une autre. En général, vous ne devez pas essayer de modifier la sortie du précompilateur.

ETATSQL :
58003