ALTER TABLE : les valeurs par défaut incompatibles ne sont plus autorisées dans les nouvelles colonnes¶
Attention
Ce changement de comportement est présent dans le bundle 2023_08.
Pour connaître le statut actuel du bundle, reportez-vous à Historique du bundle.
La commande ALTERTABLE se comporte comme suit :
- Avant la modification:
- Les commandes ALTER TABLE ADD COLUMN DEFAULT permettaient d’ajouter une colonne avec une valeur par défaut incompatible avec le type de données de la colonne. La valeur par défaut qui en résulte est inutilisable. Par exemple, bien que la valeur par défaut de 1 soit incompatible avec le type de données TIMESTAMP_TZ, la commande suivante aboutira : - ALTER TABLE t ADD COLUMN x TIMESTAMP_TZ DEFAULT 1;
- Après la modification:
- les commandes ALTER TABLE ADD COLUMN DEFAULT ne permettent plus d’ajouter une colonne dont la valeur par défaut est incompatible avec le type de données de la colonne. Une tentative de définition d’une valeur par défaut incompatible pour une colonne se solde par une erreur. Par exemple : - SQL compilation error: Expression type does not match column data type, expecting DATE but got NUMBER(1,0) for column Y- Les combinaisons spécifiques suivantes échouent : - Type de données de la colonne - Type de données de la valeur DEFAULT - VARCHAR - BOOLEAN - DATE - BOOLEAN - TIME - BOOLEAN - TIMESTAMP_LTZ - BOOLEAN - TIMESTAMP_NTZ - BOOLEAN - TIMESTAMP_TZ - BOOLEAN - FLOAT - BOOLEAN - NUMBER - BOOLEAN - BOOLEAN - VARCHAR - DATE - FLOAT - TIME - FLOAT - TIMESTAMP_LTZ - FLOAT - TIMESTAMP_NTZ - FLOAT - TIMESTAMP_TZ - FLOAT - DATE - NUMBER - TIME - NUMBER - TIMESTAMP_LTZ - NUMBER - TIMESTAMP_NTZ - NUMBER - TIMESTAMP_TZ - NUMBER 
Réf : 1425