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

Валидиране на дата в Oracle без използване на функция

Можете да тествате формата с помощта на регулярен израз.

Би било нещо като:

select dates
from tbl
where regexp_like(dates, '[[:digit:]]{4}/[[:digit:]]{2}/[[:digit:]]{2}')

Това работи добре. Той проверява дали форматът е в "4-цифрено число / 2-цифрено число / 2-цифрено число". Може да искате нещо по-силно, като например:

select dates
from tbl
where regexp_like(dates, '[[:digit:]]{4}/[[:digit:]]{2}/[[:digit:]]{2}') or
      (substr(dates, 1, 4) not between '1900' and '2014' or
       substr(dates, 6, 2) not between '01' and '12' 
       substr(dates, 9, 2) not between '01' and '31'
      )

Това проверява формата и за разумни стойности във всяка колона. Разбира се, не проверява за 31 юни, но ще улови много грешки.



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

  2. 4 PL/SQL примера за анонимни блокове

  3. Изборът на клауза в pl/sql функцията връща грешна стойност

  4. Групирайте Oracle само по ЕДНА колона

  5. Как да стартирате съхранена процедура в oracle sql developer?