ПРОВЕРИТЬ ФОРМАТ ДАТЫ В ТАБЛИЦЕ, ИСПОЛЬЗУЯ УСЛОВИЕ

Мне нужно проверить, указаны ли даты в таблице в формате ДД-МЕС-ГГГГ, и если это не так, нужно вызвать исключение. Пожалуйста, помогите мне, поскольку я новичок в этом поле.

🤔 А знаете ли вы, что...
Oracle является одним из лидеров в области баз данных в облаке с Oracle Cloud Database.


429
1

Ответ:

Решено

Как насчет:

to_date(yourDateColumn,'DD-MON-YYYY')

предполагая, что yourDateColumn - это строка (varchar2 или char или что-то еще). to_date выдаст исключение, если дата недействительна.

Если вам действительно нужно использовать if, вы можете реализовать функцию, которая будет возвращать 1, если дата действительна, и 0 в противном случае скажет:

function isValidDate(yourDate in varchar2) return number is 
 tempDate Date;  
begin 
  tempDate := to_date(yourDate,'DD-MON-YYYY');
  return 1;
exception when others then 
  return 0;
end;

А затем используйте функцию в операторе IF

if isValidDate(yourDate in Date)=1 then 
--perform some operations 
end if;

Однако имейте в виду, что хранить даты в базе данных в качестве «жала» - плохая практика.