sql >> Databasteknik >  >> RDS >> Oracle

oracle begränsningar datatyp

Det här är för långt för en kommentar.

Du kan inte göra vad du vill lätt. Oracle konverterar ingångsvärdet 3.2 till ett heltal. Heltalet uppfyller begränsningen. Värdet 3 är det som sätts in. Omvandlingen sker bakom kulisserna. Utvecklarna av Oracle ansåg att denna omvandling är en "bra sak".

Du kan komma runt detta genom att deklarera kolumnen som ett nummer och kontrollera sedan att det är ett heltal:

create table test (
     A number, 
     constraints ACHECK check(A between 1 and 5 and mod(A, 1) = 0)
);


  1. ID från lista som inte finns i en tabell

  2. mysqldump samtidighet

  3. mysql-fråga som returnerar false även när värden finns i tabellen? Försöker du hitta om inte i tabellen?

  4. oracle - samma fråga men annan plan i 11g och 12c