Oracle
 sql >> база данни >  >> RDS >> Oracle

тип данни за ограничения на оракул

Това е твърде дълго за коментар.

Не можете лесно да правите това, което искате. Oracle преобразува входната стойност 3.2 до цяло число. Цялото число отговаря на ограничението. Стойността 3 е това, което се вмъква. Преобразуването се случва зад кулисите. Разработчиците на Oracle смятат, че това преобразуване е „добро нещо“.

Можете да заобиколите това, като декларирате колоната като число и след това проверка дали е цяло число:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. възможно ли е да има генератор на буквено-цифрова последователност в sql

  2. Може ли времето за изчакване за заключване на обект по подразбиране на Oracle да бъде променено?

  3. ORA-01795:максималният брой изрази в списък е 1000, как да разделя низа

  4. Връщане на референтен курсор на Oracle и добавяне на множество резултати

  5. MAX() в ORACLE SQL