ALTER TABLE: valores padrão incompatíveis não são mais permitidos em novas colunas

Atenção

Essa mudança de comportamento está no pacote 2023_08.

Para saber o status atual do pacote, consulte Histórico do pacote.

O comando ALTER TABLE se comporta da seguinte maneira:

Antes da mudança:

Comandos ALTER TABLE ADD COLUMN DEFAULT permitiam adicionar uma coluna com um valor padrão incompatível com o tipo de dados da coluna. O valor padrão resultante era inutilizável. Por exemplo, embora o valor padrão 1 seja incompatível com o tipo de dados TIMESTAMP_TZ, o seguinte comando seria bem-sucedido:

ALTER TABLE t ADD COLUMN x TIMESTAMP_TZ DEFAULT 1;

Após a mudança:

Comandos ALTER TABLE ADD COLUMN DEFAULT não permitem mais adicionar uma coluna com um valor padrão incompatível com o tipo de dados da coluna. Uma tentativa de definir um valor padrão incompatível para uma coluna falha com um erro. Por exemplo:

SQL compilation error: Expression type does not match column data type, expecting DATE but got NUMBER(1,0) for column Y

As seguintes combinações específicas falham:

Tipo de dados da coluna

Tipo de dados de valor 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

Ref: 1425