Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Проверка формата даты / 18 сообщений из 18, страница 1 из 1
10.05.2017, 07:31
    #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
10.05.2017, 07:40
    #39450530
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка формата даты
gister
Код: plsql
1.
select

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


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


тоже неверная конструкция
что-то поторопился... нет смысла в функции проверки с датой на входе
...
Рейтинг: 0 / 0
10.05.2017, 08:11
    #39450538
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка формата даты
gisterно в таком случае ошибка о неверном формате тоже не гаситсяТы туп как дерево.
...
Рейтинг: 0 / 0
10.05.2017, 08:16
    #39450539
gister
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка формата даты
Скорее всего ты не догоняешь
...
Рейтинг: 0 / 0
10.05.2017, 08:22
    #39450541
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка формата даты
gisterСкорее всего ты не догоняешь 20467699
...
Рейтинг: 0 / 0
10.05.2017, 08:29
    #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
10.05.2017, 08:31
    #39450545
gister
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка формата даты
Актуальная функция, ошибка не глушится
...
Рейтинг: 0 / 0
10.05.2017, 08:34
    #39450546
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка формата даты
gister
Код: plsql
1.
2.
function fLocalValidDate(
  p_DATE     in date,

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

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

Сам себе на словах объясни что делает твоя фикция функция. С учётом типов данных.
...
Рейтинг: 0 / 0
10.05.2017, 11:06
    #39450635
gister
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка формата даты
Спасибо! Разобрался
...
Рейтинг: 0 / 0
11.05.2017, 15:03
    #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
11.05.2017, 15:13
    #39451427
stax..
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка формата даты
Амаразм,
в чем глюк?
нормальная дата согласно маске

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


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