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