Archives de catégorie : SQLCODE

CODE RETOUR -658

object-type CANNOT BE DROPPED USING THE statement STATEMENT

Explication :
Une instruction DROP a été émise, mais l’objet ne peut pas être explicitement supprimé. L’objet doit être déposé en déposant un objet associé :

TRIGGER PACKAGE
Un trigger package ne peut pas être supprimé avec l’instruction DROP PACKAGE. Un trigger package ne peut être supprimé implicitement que lorsque le déclencheur associé est supprimé à l’aide de l’instruction DROP TRIGGER.

CAST FUNCTION
Une cast function ne peut pas être explicitement supprimée avec l’instruction DROP FUNCTION. Une cast function ne peut être supprimée implicitement que lorsque le type distinct associé est supprimé à l’aide de l’instruction DROP DISTINCT TYPE.

ROW PERMISSION
Une row permission par défaut ne peut pas être explicitement supprimée avec l’instruction DROP PERMISSION. Une row permission par défaut ne peut être supprimée implicitement que lorsque la table associée est supprimée à l’aide de l’instruction DROP TABLE. Alternativement, l’autorisation de ligne par défaut peut être supprimée à l’aide de l’instruction ALTER TABLE avec la clause DEACTIVATE ROW ACCESS.

Action du système :
La déclaration ne peut pas être traitée.

Réponse du programmeur :
Émettez l’instruction DROP appropriée pour supprimer les objets voulus.

SQLSTATE :
42917

CODE RETOUR -660

INDEX index-name CANNOT BE CREATED OR ALTERED ON PARTITIONED TABLE SPACE tspace-name BECAUSE KEY LIMITS ARE NOT SPECIFIED

Explication :
L’instruction CREATE INDEX ou ALTER INDEX n’a pas spécifié de valeurs de clé limites pour les partitions de l’espace table. Pour créer un index de clustering pour une table dans un espace table partitionné, ou pour modifier ces valeurs à l’aide de ALTER INDEX, vous devez inclure ces valeurs.

Action du système :
La déclaration ne peut pas être traitée. L’index de cluster spécifié n’a pas été créé ou modifié.

Réponse du programmeur :
Vérifiez que la table correcte a été spécifiée dans l’instruction CREATE INDEX ou ALTER INDEX. Si c’est le cas, la définition de l’espace table partitionné doit être examinée afin qu’une définition appropriée de l’index de grappe pour la table puisse être construite.

SQLSTATE :
53035

CODE RETOUR -655

THE CREATE OR ALTER STOGROUP IS INVALID BECAUSE THE STORAGE GROUP WOULD HAVE BOTH SPECIFIC AND NON-SPECIFIC VOLUME IDS

Explication :

L’une des conditions d’erreur suivantes s’est produite :

  • Un ID de volume spécifique et un ID de volume non spécifique (‘*’) sont spécifiés dans la clause VOLUMES d’une instruction CREATE STOGROUP.
  • Un ID de volume spécifique et un ID de volume non spécifique (‘*’) sont spécifiés dans une clause ADD VOLUMES d’une instruction ALTER STOGROUP.
  • Un ID de volume spécifique est spécifié dans une clause ADD VOLUMES d’un ALTER d’un groupe de stockage qui a des ID de volume non spécifiques ou des ID de volume mixtes.
  • Un ID de volume non spécifique (‘*’) est spécifié dans une clause ADD VOLUMES d’un ALTER d’un groupe de stockage qui a des ID de volume spécifiques ou des ID de volume mixtes.

Action du système :
La déclaration ne peut pas être traitée.

Réponse du programmeur :
Spécifiez des ID de volume spécifiques ou non spécifiques dans la clause VOLUMES de l’instruction CREATE STOGROUP et la clause ADD VOLUMES de l’instruction ALTER STOGROUP. Pour ajouter des ID de volume spécifiques à un groupe de stockage avec des ID de volume non spécifiques, utilisez la clause REMOVE VOLUMES pour supprimer les ID de volume non spécifiques. Pour ajouter des ID de volume non spécifiques à un groupe de stockage avec des ID de volume spécifiques, utilisez la clause REMOVE VOLUMES pour supprimer les ID de volume spécifiques.

SQLSTATE :
56036

CODE RETOUR -653

TABLE table-name IN PARTITIONED TABLE SPACE tspace-name IS NOT AVAILABLE BECAUSE ITS PARTITIONED INDEX HAS NOT BEEN CREATED

Explication :
Une tentative a été effectuée pour insérer ou manipuler des données ou créer une vue sur une table partitionnée (c’est-à-dire une table résidant dans un espace table partitionné) avant que l’index partitionné de cette table ait été créé.

Une table résidant dans un espace table partitionné ne peut pas être référencée dans une instruction de manipulation SQL ou une instruction CREATE VIEW avant que l’index partitionné de cette table ait été créé.

Action du système :
La déclaration ne peut pas être traitée.

Réponse du programmeur :
Vérifiez que la table correcte a été spécifiée dans l’instruction. Si tel est le cas, assurez-vous que l’index partitionné de la table a été créé avec succès avant de tenter d’exécuter des instructions de manipulation SQL faisant référence à cette table.

SQLSTATE :
57004

CODE RETOUR -652

VIOLATION OF INSTALLATION DEFINED EDIT OR VALIDATION PROCEDURE proc-name

Explication :
Le résultat de l’instruction SQL a été rejeté par la procédure d’édition ou de validation définie par l’installationproc-namepour la table d’objets.

Action du système :
La déclaration ne peut pas être traitée. Le contenu de la table d’objets n’a pas été modifié.

Réponse du programmeur :
Déterminez les exigences imposées par la procédure d’édition ou de validation pour les insertions et les mises à jour de la table d’objets.

SQLSTATE :
23506

CODE RETOUR -651

TABLE DESCRIPTION EXCEEDS MAXIMUM SIZE OF OBJECT DESCRIPTOR

Explication :
L’instruction CREATE TABLE ou ALTER TABLE fait que la description de la table (enregistrement OBD) dépasse la limite de taille de la description objet de 32 Kb.

Action du système :
L’instruction n’est pas exécutée. Pour une instruction ALTER TABLE, la définition de la table est inchangée. Pour une instruction CREATE TABLE, la table n’est pas créée.

Réponse du programmeur :
Modifiez l’instruction en réduisant le nombre ou la longueur (ou une combinaison des deux) des constantes de chaîne par défaut définies par l’utilisateur ou vérifiez les contraintes et exécutez à nouveau l’instruction.

SQLSTATE :
54025

CODE RETOUR -751

object-type object-name (SPECIFIC NAME specific name) ATTEMPTED TO EXECUTE AN SQL STATEMENT sql-statement THAT IS NOT ALLOWED

Explication :
Une procédure stockée ou une fonction définie par l’utilisateur a tenté d’exécuter une instruction SQL non autorisée.

object-type
Le type d’objet :

  • Procédure stockée
    Une procédure stockée a émis une instruction SQL qui a forcé le thread Db2 à annuler l’unité de travail. L’instruction SQL qui a provoqué le placement du thread dans l’état MUST_ROLLBACK est COMMIT ou ROLLBACK :
    Toutes les autres instructions SQL sont rejetées jusqu’à ce que l’application SQL qui a émis l’instruction SQL CALL annule l’unité de travail. Lorsque le contrôle revient à l’application SQL qui a émis l’instruction SQL CALL, l’application SQL doit annuler l’unité de travail. Cela peut être fait en émettant une instruction SQL ROLLBACK ou l’opération IMS ou CICS® équivalente.
  • Fonction définie par l’utilisateur
    La fonction externe indiquée par object-name a émis une instruction COMMIT ou ROLLBACK.

object-name
Le nom de l’objet.

specific-name
Le nom de la fonction spécifique, qui est unique dans le schéma.

sql-statemen
L’instruction SQL qui a été émise.

Action du système :
La déclaration ne peut pas être traitée.

Réponse du programmeur :
Supprimez toutes les instructions COMMIT et ROLLBACK de la procédure stockée ou modifiez l’application cliente afin qu’elle établisse un environnement permettant à la procédure stockée d’exécuter des instructions. Les procédures stockées appelées à distance peuvent exécuter des instructions COMMIT ou ROLLBACK intégrées si les conditions suivantes sont remplies :

  • La connexion avec le système demandeur doit utiliser des protocoles de validation en une phase.
  • Le système demandeur doit indiquer que les validations sont autorisées en envoyant une indication DRDA RDBCMTOK=TRUE lorsque la procédure stockée est appelée.

Pour les systèmes demandeurs Db2 Connect, l’application cliente doit utiliser des connexions Connect Type 1 ou Remote Unit of Work. D’autres connexions font que Db2 Connect indique que les validations ne sont pas autorisées, ce qui entraînera l’échec des instructions COMMIT et ROLLBACK dans une procédure stockée.

SQLSTATE :
38003
2F003

CODE RETOUR -718

REBIND OF PACKAGE package-name FAILED BECAUSE IBMREQD OF ibmreqd IS INVALID

Explication :
La colonne IBMREQD de la table de catalogue SYSIBM.SYSPACKAGE pour le package nommé contient un caractère non reconnaissable.

package-name
Nom du package (location.collection.package.version)

Action du système :
Le REBIND a échoué.

Réponse de l’utilisateur :
Vous devez effectuer une BIND ACTION(REPLACE) pour ce package.

SQLSTATE :
56067

CODE RETOUR -650

THE ALTER STATEMENT CANNOT BE EXECUTED, REASON reason-code

Explication
L’instruction ALTER ne peut pas être exécutée pour la raison indiquée.

reason-code
Une valeur numérique qui indique la raison pour laquelle l’instruction ne peut pas être exécutée.

5

Une instruction ALTER avec une clause PIECESIZE n’est pas autorisée pour un index de partitionnement.

6

Une instruction ALTER avec une clause PIECESIZE 4G n’est pas autorisée pour les index non partitionnés sur une table de taille réduite.

7

Une instruction ALTER avec une clause DSSIZE n’est autorisée que pour les espaces table LOB et universels.

8

Une instruction ALTER avec une clause SEGSIZE est autorisée pour les espaces table universels et les espaces table partitionnés qui utilisent le partitionnement contrôlé par table.

9

Une instruction ALTER avec une clause BUFFERPOOL dans laquelle une taille de page différente est spécifiée n’est autorisée que pour les espaces table LOB et universels (à l’exception des espaces table XML).

10

Une instruction ALTER avec une clause MAXPARTITIONS n’est autorisée que pour les espaces table suivants :

  • Espaces de table simples à une seule table
  • Espaces table segmentés à table unique
  • Espaces table universels utilisant une organisation partition par croissance

11

Une instruction ALTER avec une clause ENDING AT n’est pas autorisée pour un index sur une table de base partitionnée avec des colonnes LOB ou la table elle-même.

12

ALTER INDEX n’est pas autorisé lorsqu’une instruction SQL est en attente

13

ALTER TABLE n’est pas autorisé lorsqu’une instruction SQL est en attente.

14

Une instruction ALTER INDEX avec une clause ENDING AT n’est pas autorisée lors de l’utilisation du partitionnement contrôlé par table.

15

L’utilisation d’ALTER pour modifier les attributs des valeurs d’une partition n’est pas autorisée pour un index sur une table de base partitionnée avec des colonnes LOB, ou la table elle-même.

16

ALTER TABLE DATA CAPTURE CHANGES n’est pas autorisé pour les espaces table à l’état consultatif en attente de REORG (AREO).

17

ALTER TABLE DROP CLONE ne peut pas être utilisé pour supprimer un clone lorsque la table elle-même est un clone.

18

ALTER INDEX n’est pas autorisé lorsque la table a défini un clone.

19

ALTER TABLESPACE n’est pas autorisé lorsque l’espace table contient une table dont un clone est défini.

20

ALTER TABLE DROP CLONE ne peut pas être utilisé pour supprimer un clone lorsque la table n’a pas de clone défini.

21

ALTER TABLE SET DEFAULT n’est pas autorisé lorsque toutes les conditions suivantes sont vraies :

  • La table existe dans un espace table qui a actuellement l’attribut DEFINE YES.
  • L’instruction ALTER TABLE fait référence à une colonne qui ne faisait pas partie de la définition de table d’origine.
  • Le tableau n’a pas été réorganisé depuis l’ajout de la colonne référencée.

22

ALTER TABLE SET DEFAULT et DROP DEFAULT ne sont pas autorisés pour les tables référencées par une table ou une vue de requête matérialisée.

23

ALTER TABLE DROP DEFAULT n’est pas autorisé lorsque l’espace table est dans l’état d’avertissement REORG-pending (AREO*).

24

Une instruction ALTER TABLE avec des options en attente n’est autorisée que pour les espaces table universels.

25

ALTER TABLE DROP DEFAULT n’est pas autorisé lorsque toutes les conditions suivantes sont vraies :

  • L’espace table est soit dans l’état en attente de REORG-pending (AREO*) ou en REORG-pending (REORP).
  • L’instruction ALTER TABLE fait référence à une colonne qui ne faisait pas partie de la définition de table d’origine.
  • Le tableau n’a pas été réorganisé depuis l’ajout de la colonne référencée.

Dans ce cas, une mise à jour en masse peut être utilisée pour effacer l’état AREO*.

26

Une instruction ALTER VIEW avec une clause REGENERATE n’est pas autorisée si la vue est référencée par une table de requête matérialisée.

27

Pour une instruction ALTER TABLE qui nomme une table de requête matérialisée, les modifications sont limitées aux situations suivantes :

  • Modification des attributs de la table de requête matérialisée
  • Transformer la table de requête matérialisée en table de base
  • En précisant les clauses suivantes :
    1. ADD RESTRICT ON DROP
    2. ALTER MATERIALIZED QUERY
    3. ALTER PARTITION
    4. AUDIT
    5. DATA CAPTURE
    6. DROP MATERIALIZED QUERY
    7. DROP RESTRICT ON DROP
    8. ROTATE PARTITION
    9. KEY LABEL
    10. NO KEY LABEL

Les clauses ADD RESTRICT ON DROP et DROP RESTRICT ON DROP ne peuvent pas être utilisées dans la même instruction.

28

ALTER TABLE n’est pas autorisé pour une table d’accélérateur uniquement, sauf si la seule modification spécifiée est ADD RESTRICT ON DROP ou DROP RESTRICT ON DROP.

29

ALTER TABLESPACE n’est pas autorisé lorsque l’espace table contient une table d’accélérateur uniquement.

32

Une instruction ALTER avec une clause ADD PARTITION a tenté d’insérer une partition. Ceci n’est pas autorisé pour l’une des raisons suivantes :

  • La table n’est pas dans un espace table partition par plage.
  • Le numéro de partition n’est pas valide.
  • La valeur de la clé limite n’est pas valide pour une partition affectée.
  • La table contient une colonne LOB ou une colonne de type distinct basée sur un type de données LOB.

34

ALTER TABLESPACE COMPRESS n’est pas autorisé pour un espace table LOB lorsque l’espace table de base associé n’est pas un espace table universel.

35

ALTER TABLESPACE PAGENUM échoue car l’espace table n’est pas une partition par plage d’espace table.

36

ALTER TABLESPACE PAGENUM échoue car l’espace table est DEFINE NO, mais au moins un index pour l’espace table est DEFINE YES.

37

ALTER TABLESPACE PAGENUM n’a pas réussi car un mot clé non valide a été spécifié. PAGENUM doit être suivi du mot-clé RELATIVE.

38

ALTER TABLESPACE PAGENUM échoue car l’espace table utilise une organisation de hachage, ou ALTER TABLE ne peut pas être utilisé pour ajouter une organisation de hachage lorsque la table réside dans un espace table qui utilise des numéros de page relatifs.

39

ALTER TABLESPACE PAGENUM n’a pas réussi car la table contient des valeurs de clé de limite tronquées.

40

Une instruction ALTER TABLESPACE avec une clause MOVE TABLE doit spécifier une table qui existe dans l’espace table en cours de modification.

41

Une instruction ALTER TABLESPACE avec une clause MOVE TABLE doit spécifier un espace table simple ou segmenté (non UTS) qui doit être modifié.

42

Une instruction ALTER TABLESPACE avec une clause MOVE TABLE doit spécifier un espace table qui existe dans la même base de données que l’espace table en cours de modification.

43

Une instruction ALTER TABLESPACE avec une clause MOVE TABLE doit spécifier un espace table cible qui est un espace table universel partition par croissance.

44

Une instruction ALTER TABLESPACE avec une clause MOVE TABLE doit spécifier un espace table cible qui n’a pas encore d’ensembles de données créés.

45

Une instruction ALTER TABLESPACE avec une clause MOVE TABLE doit spécifier un espace table cible défini avec MAXPARTITIONS 1.

46

Une instruction ALTER TABLESPACE avec une clause MOVE TABLE doit spécifier un espace table cible défini avec le même attribut LOGGED que l’espace table source.

47

Si un espace table est la cible d’une modification de définition en attente pour déplacer une table, l’espace table cible ne peut pas être supprimé et recréé avant que la modification en attente ne soit matérialisée.

48

Un ALTER TABLESPACE avec une clause MAXPARTITIONS pour convertir l’espace table en un espace table universel partition par croissance doit spécifier MAXPARTITIONS 1 s’il existe une modification de définition en attente pour déplacer une table de l’espace table.

49

ALTER TABLESPACE COMPRESS YES HUFFMAN n’est pas autorisé pour un espace table non universel.

50

ALTER TABLESPACE COMPRESS YES FIXEDLENGTH ou COMPRESS YES HUFFMAN n’est pas autorisé pour un espace table LOB.

51

ALTER TABLESPACE COMPRESS YES HUFFMAN n’est pas autorisé pour un espace table qui utilise une organisation de hachage.

Action du système
L’instruction ne peut pas être traitée.

Réponse du programmeur
Corrigez l’erreur en fonction des informations fournies pour la valeur du code anomalie et réémettez l’instruction.

Pour les erreurs dues à une définition incorrecte de l’espace table cible pour une modification de définition en attente pour déplacer une table, effectuez l’une des actions suivantes :

  • Modifiez l’espace table cible pour spécifier les attributs corrects.
  • Effectuez les étapes suivantes :
    1. Supprimez toutes les modifications de définition en attente, y compris l’opération MOVE TABLE, associée à l’espace table source.
    2. Supprimez l’espace table cible.
    3. Recréez l’espace table cible avec les attributs corrects.
    4. Exécutez à nouveau toutes les modifications de définition en attente.

SQLSTATE
56090

CODE RETOUR -647

BUFFERPOOL bp-name FOR IMPLICIT OR EXPLICIT TABLESPACE OR INDEXSPACE name HAS NOT BEEN ACTIVATED

Explication
Le pool de mémoire tampon spécifié dans une instruction CREATE ou ALTER pour un espace table ou un index (espace d’index) n’est pas activé. Sinon, sur une instruction CREATE TABLE sans clause IN, le pool de mémoire tampon, qui est choisi implicitement par Db2 en fonction de la taille d’enregistrement réelle, n’est pas activé.

Les espaces table et les index (espaces d’index) ne peuvent être affectés ou réaffectés qu’aux pools de mémoire tampon actuellement activés.

Action du système
L’instruction ne peut pas être traitée. L’espace table ou l’espace d’index spécifié n’a pas été créé ou modifié.

Réponse du programmeur
Vérifiez que le pool de mémoire tampon approprié a été spécifié dans l’instruction CREATE ou ALTER et que le pool de mémoire tampon est choisi par Db2. Utilisez la commande -DISPLAY BUFFERPOOL pour afficher les attributs du pool de mémoire tampon et déterminer si le pool de mémoire tampon est activé. Si le pool de mémoire tampon n’est pas activé, utilisez la commande -ALTER BUFFERPOOL pour modifier le VPSIZE de 0 à la taille appropriée.

SQLSTATE
57003