Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

tipo de dados de restrições do oráculo


Isso é muito longo para um comentário.

Você não pode fazer o que quer facilmente. Oracle está convertendo o valor de entrada 3.2 para um inteiro. O inteiro atende à restrição. O valor 3 é o que é inserido. A conversão acontece nos bastidores. Os desenvolvedores da Oracle acharam que essa conversão é uma "coisa boa".

Você pode contornar isso declarando a coluna como um número e, em seguida, verificando se é um número inteiro:
create table test (
     A number, 
     constraints ACHECK check(A between 1 and 5 and mod(A, 1) = 0)
);