#oracle #function #date #plsql
Вопрос:
Как создать функцию, которая принимает дату в качестве входных yyyy-mm-dd
данных, и написать запрос внутри функции, чтобы оценить, действительна ли дата в PL/SQL.
Комментарии:
1. Эта функция уже существует:
validate_conversion
2. Также спрашивали по ОТН _ community.oracle.com/tech/developers/discussion/4489083/…
Ответ №1:
Вот один из вариантов:
- примите входной параметр (который является строкой)
- преобразуйте его в
DATE
значение (строка №6)- если это удастся, вернитесь
OK
- если нет, возникает исключение (вам на самом деле все равно, какое именно; входная строка просто не представляет допустимое значение даты, представленное в указанном вами формате:
yyyy-mm-dd
), и функция возвращаетNOK
- если это удастся, вернитесь
SQL> create or replace function f_date (par_date in varchar2)
2 return varchar2
3 is
4 l_date date;
5 begin
6 l_date := to_date(par_date, 'yyyy-mm-dd');
7 return 'OK';
8 exception
9 when others then
10 return 'NOK';
11 end;
12 /
Function created.
SQL> select f_date('2021-09-17') result from dual;
RESULT
--------------------------------------------------------------------------------
OK
SQL> select f_date('2021-19-87') result from dual;
RESULT
--------------------------------------------------------------------------------
NOK
SQL>
Комментарии:
1. Я не могу прокомментировать синтаксис PosgreSQL , @Atishay. pl/pgsql отличается от PL/SQL Oracle . Мы говорим здесь оракуле.