ALTER TABLE: Inkompatible Standardwerte sind in neuen Spalten nicht mehr zulässig¶
Achtung
Diese Verhaltensänderung ist in Bundle 2023_08 enthalten.
Den aktuellen Status des Bundles finden Sie unter Bundle-Verlauf.
Der Befehl ALTER TABLE verhält sich wie folgt:
- Vor der Änderung:
ALTER TABLE ADD COLUMN DEFAULT-Befehle können eine Spalte mit einem Standardwert hinzufügen, der nicht mit dem Datentyp der Spalte kompatibel ist. Der resultierende Standardwert ist aber nicht verwendbar. Obwohl zum Beispiel der Standardwert 1 nicht mit dem Datentyp TIMESTAMP_TZ kompatibel ist, würde der folgende Befehl erfolgreich sein:
ALTER TABLE t ADD COLUMN x TIMESTAMP_TZ DEFAULT 1;
- Nach der Änderung:
ALTER TABLE ADD COLUMN DEFAULT-Befehle können keine Spalten mit einem Standardwert hinzufügen, der nicht mit dem Datentyp der Spalte kompatibel ist. Der Versuch, einen inkompatiblen Standardwert für eine Spalte festzulegen, schlägt mit einem Fehler fehl. Beispiel:
SQL compilation error: Expression type does not match column data type, expecting DATE but got NUMBER(1,0) for column Y
Die folgenden spezifischen Kombinationen schlagen fehl:
Datentyp der Spalte
Datentyp des DEFAULT-Werts
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
Ref.: 1425