CODE RETOUR -148

THE SOURCE TABLE OR TABLESPACE source-name CANNOT BE ALTERED, REASON reason-code

Explication :
L’instruction ALTER émise n’a pas pu être traitée.

source-name
Nom de la table ou de l’espace table source.
reason-code
La raison du message ou du code SQL, indiquée par l’une des valeurs suivantes :

01

L’instruction ALTER a spécifié une clause ALTER COLUMN qui a tenté de supprimer la valeur par défaut, de modifier la valeur par défaut ou de modifier la longueur de la colonne. La colonne ne peut pas être modifiée car la colonne a une procédure de champ ou est impliquée dans une contrainte référentielle ou de vérification. La valeur par défaut ne peut pas être modifiée car la colonne a une procédure de champ.

02

L’instruction ALTER a spécifié une clause ALTER COLUMN qui a tenté de supprimer la valeur par défaut, de modifier la valeur par défaut ou de modifier la longueur de la colonne. La colonne ne peut pas être modifiée car la table identifiée par source-name  peut être l’une des suivantes :
Une table qui a une procédure d’édition ou une procédure de validation.

03

L’instruction ALTER a spécifié une clause ALTER COLUMN qui a tenté de supprimer la valeur par défaut, de modifier la valeur par défaut ou de modifier le type de données de la colonne. La colonne ne peut pas être modifiée car la table est définie avec DATA CAPTURE CHANGES et le paramètre de sous-système RESTRICT_ALT_COL_FOR_DCC est défini sur YES.

04

L’instruction ALTER ne peut pas être utilisée pour définir une table clone car une table clone est déjà définie pour source-name.

05

L’instruction ALTER ne peut pas être utilisée pour définir une table clone car la table source-name ne se trouve pas dans un espace table universel ou dans un espace table défini avec PAGENUM RELATIVE.

06

L’instruction ALTER ne peut pas être utilisée pour définir une table clone car la table source-name est impliquée dans une contrainte référentielle ou de vérification.

07

L’instruction ALTER ne peut pas être utilisée pour définir une table clone car la table source-name a un déclencheur (after trigger) défini dessus.

08

L’instruction ALTER ne peut pas être utilisée pour définir une table clone car la table source-name est une table de requête matérialisée.

09

L’instruction ALTER ne peut pas être utilisée pour définir une table clone car la table source-name a plusieurs versions d’espace table ou d’index en cours d’utilisation.

10

L’une des raisons suivantes :
L’instruction ALTER ne peut pas être utilisée pour définir une table clone car l’espace table de la table nom-source ou un index sur la table source-name a été créé avec DEFINE NO et l’ensemble de données n’est pas encore défini.

Un objet auxiliaire pour une table source avec une colonne LOB ou XML a été créé avec DEFINE NO, et l’ensemble de données n’est pas encore défini.

11

L’instruction ALTER a tenté de modifier une table qui a un clone défini ou une table qui est un clone.

12

L’instruction ALTER ne peut pas être utilisée pour définir une table clonée car la table source-name est définie avec une procédure d’édition, une procédure de validation ou une procédure de zone.

13

L’instruction ALTER ne peut pas être traitée car un index dépasse la limite de version de 16.

14

Une instruction ALTER avec une clause ALTER COLUMN a tenté de changer le type de données de caractère FOR BIT DATA en BINARY, mais la longueur de la valeur par défaut de transtypage dépasse 1536 octets UTF-8.

15

L’instruction ALTER ne peut pas être traitée car aucune modification en attente n’est associée à l’espace table.

16

Une instruction ALTER TABLESPACE ne peut pas inclure l’option MEMBER CLUSTER YES pour l’espace table organisé par hachage.

17

L’instruction ALTER ne peut pas être utilisée pour définir une table clone car la table source-name est organisée par hachage.

18

L’instruction ALTER ne peut pas être traitée car la colonne à modifier est une colonne Unicode Db2 11 dans une table EBCDIC. Une colonne Unicode Db2 11 dans une table EBCDIC ne peut être modifiée qu’en spécifiant le même type de données, la même longueur et le même CCSID que ceux spécifiés lors de la définition initiale de la colonne avec une instruction CREATE ou ALTER TABLE. La modification migre la définition de colonne vers une colonne Db2 12 Unicode disponible à partir de l’activation du niveau de fonction 500 ou supérieur.

19

L’instruction ALTER a tenté de définir ou de modifier une étiquette de clé pour une table clone.


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

Réponse du programmeur :
Remplacez source-name par le nom d’un objet qui peut être modifié comme spécifié et réexécutez l’instruction, ou effectuez une action appropriée pour la valeur du code de raison :

01

N’essayez pas de remplacer source-name par le nom d’un objet qui peut être modifié comme spécifié et réexécutez l’instruction.

02

N’essayez pas de modifier une colonne définie avec une procédure d’édition ou une procédure valide.

03

N’essayez pas de modifier ou de supprimer la valeur par défaut, ou de modifier le type de données d’une colonne lorsque la table est définie avec DATA CAPTURE CHANGES et que le paramètre de sous-système RESTRICT_ALT_COL_FOR_DCC est défini sur YES.

04

Avant de définir une table clone, vérifiez qu’aucune table clone n’est déjà définie pour source-name.

05

Avant de définir une table clone, vérifiez que la table source-name se trouve dans un espace table universel.

06

Avant de définir une table clonée, vérifiez que la table source-name n’est pas impliquée dans une contrainte référentielle ou de vérification.

07

Avant de définir une table clone, vérifiez qu’aucun déclencheur AFTER n’est défini sur la table source-name.

08

Avant de définir une table clone, vérifiez que la table source-name n’est pas une table de requête matérialisée.

09

Avant de définir une table clonée, vérifiez que la table source-name n’a pas plus d’une version d’espace table ou d’une version d’index en cours d’utilisation.

10

Avant de définir une table clone, vérifiez que les ensembles de données pour source-name et ses index sont définis.

11

Supprimez la table clonée, puis modifiez la colonne. Utilisez une instruction ALTER TABLE avec la clause DROP CLONE.

12

Avant de définir une table clone, vérifiez que la table source-name n’a pas de procédure d’édition, de procédure valide ou de procédure de champ.

13

Réduisez le nombre de versions de l’index, puis relancez l’instruction ALTER.

14

Réduisez ou supprimez la valeur par défaut. Pour modifier la valeur par défaut, utilisez une instruction ALTER TABLE avec ALTER COLUMN SET DEFAULT. Pour supprimer la valeur par défaut, utilisez une instruction ALTER TABLE avec ALTER COLUMN DROP DEFAULT.

15

Évitez de modifier un espace table pour supprimer les modifications en attente qui n’existent pas.

16

N’essayez pas d’ajouter l’option MEMBER CLUSTER YES pour un espace table organisé par hachage.

17

N’essayez pas de définir une table clone pour une table organisée par hachage.

18

N’essayez pas de modifier une colonne Unicode Db2 11 dans une table EBCDIC.

19

N’essayez pas de définir ou de modifier une étiquette de clé pour une table clonée. Le libellé de la clé est hérité de la table de base.

ETATSQL :
42809