powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Проверка формата даты
18 сообщений из 18, страница 1 из 1
Проверка формата даты
    #39450528
gister
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день! Написал функцию:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
-- Проверка формата даты
function fLocalValidDate(
  p_DATE     in date,
  p_FORMAT   in varchar2 default 'DD.MM.RRRR'
) return char is
  cDate date;
begin
  select to_date(trunc(p_DATE),p_FORMAT) into cDate from dual;
  return '1';
exception
  when VALUE_ERROR then
    return '0';    
end;


Не получается заглушить сообщение о неверном формате даты. Пожалуйста, подскажите как сделать?
...
Рейтинг: 0 / 0
Проверка формата даты
    #39450530
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gister
Код: plsql
1.
select

Нахера?
gisterкак сделать? как проверить является ли строка - датой ?
...
Рейтинг: 0 / 0
Проверка формата даты
    #39450532
gister
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=339483&msg=3151463
но в таком случае ошибка о неверном формате тоже не гасится
...
Рейтинг: 0 / 0
Проверка формата даты
    #39450534
AnSi_Sr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plsql
1.
  select to_date(trunc(p_DATE),p_FORMAT) into cDate from dual;


тоже неверная конструкция
...
Рейтинг: 0 / 0
Проверка формата даты
    #39450535
AnSi_Sr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AnSi_Sr
Код: plsql
1.
  select to_date(trunc(p_DATE),p_FORMAT) into cDate from dual;


тоже неверная конструкция
что-то поторопился... нет смысла в функции проверки с датой на входе
...
Рейтинг: 0 / 0
Проверка формата даты
    #39450538
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gisterно в таком случае ошибка о неверном формате тоже не гаситсяТы туп как дерево.
...
Рейтинг: 0 / 0
Проверка формата даты
    #39450539
gister
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Скорее всего ты не догоняешь
...
Рейтинг: 0 / 0
Проверка формата даты
    #39450541
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gisterСкорее всего ты не догоняешь 20467699
...
Рейтинг: 0 / 0
Проверка формата даты
    #39450543
gister
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
-- Проверка формата даты
function fLocalValidDate(
  p_DATE     in date,
  p_FORMAT   in varchar2 default 'DD.MM.RRRR'
) return char is
  cDate date;
begin
  cDate := to_date(p_DATE, p_FORMAT);
  return '1';
exception
  when OTHERS then
    return '0';    
end;
...
Рейтинг: 0 / 0
Проверка формата даты
    #39450545
gister
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Актуальная функция, ошибка не глушится
...
Рейтинг: 0 / 0
Проверка формата даты
    #39450546
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gister
Код: plsql
1.
2.
function fLocalValidDate(
  p_DATE     in date,

Ты непроходимо туп.
...
Рейтинг: 0 / 0
Проверка формата даты
    #39450565
AnSi_Sr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
См. по теме что-то вроде oracle date datatype, oracle date literals, oracle convert character to date.
Если кратко, то в oracle с датой в подавляющем большинстве случаев нужно работать именно как с датой, избегая преобразований в строку. То есть, такие функции, как "проверка формата даты" могут иметь смысл крайне редко, если все-таки каким-либо образом на сторону оракла дату приходится передавать в строковом представлении.

P.S. То, что там на скрине из plsql developer - это строка, это не дата. Отсюда ошибка при попытке неявного преобразования некорректной строки к дате при вызове функции.
...
Рейтинг: 0 / 0
Проверка формата даты
    #39450576
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gister,

Сам себе на словах объясни что делает твоя фикция функция. С учётом типов данных.
...
Рейтинг: 0 / 0
Проверка формата даты
    #39450635
gister
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо! Разобрался
...
Рейтинг: 0 / 0
Проверка формата даты
    #39451416
Амаразм
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gister,

Твоя функция будет "глючить".
Предлагаю тебе разобраться в этом.


Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
WITH function fLocalValidDate2(
  p_DATE     in VARCHAR2 ,
  p_FORMAT   in varchar2 default 'DD.MM.RRRR'
) return char is
  cDate date;
begin
  cDate :=  to_date(p_DATE,p_FORMAT);
  return '1';
exception
  when OTHERS then
    return '0';    
END;
SELECT fLocalValidDate2('11112133')  FROM DUAL 
/


SQL> 

FLOCALVALIDDATE2('11112133')
--------------------------------------------------------------------------------
1

 
...
Рейтинг: 0 / 0
Проверка формата даты
    #39451427
stax..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Амаразм,
в чем глюк?
нормальная дата согласно маске

.....
stax
...
Рейтинг: 0 / 0
Проверка формата даты
    #39451461
FX modifier
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
АмаразмПредлагаю тебе разобраться в этом.может быть стоило просто дать ссылку на документацию по форматным моделям?
...
Рейтинг: 0 / 0
Проверка формата даты
    #39452153
Амаразм
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stax..,
"Глюк" тут условный, только если не знать.
Как правильно тут догадались, дело в форматной моделе функции.
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Проверка формата даты
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]