|
шаблон формата даты
|
|||
---|---|---|---|
#18+
Здравствуйте. У меня сложилась такая ситуация. Есть дата пикер: 1) Display as - Date Picker (DD.MM.YYYY HH24:MI) 2) Source type - Database column 3) Default - to_char(sysdate,'dd.mm.rrrr hh24:mi') Проблема в том, что когда в дата пикере убираешь время, то запись инсертится нормально, но если время оставляешь ошибка: ORA-01830: шаблон формата даты завершается перед преобразованием всей строки ввода Error ERR-1021 Unable to run "function body returning boolean" validation. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2010, 16:12 |
|
шаблон формата даты
|
|||
---|---|---|---|
#18+
psevdo, посмотрите какой шаблон стоит в Вашем validation, который типа "function body returning boolean". ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2010, 19:39 |
|
шаблон формата даты
|
|||
---|---|---|---|
#18+
Дело в том,что в валидатионе никакие шаблоны не указываются.. Там просто нет такой возможности.. Вызывается просто функция, и даты там просто сравниваются и никакие манипуляции с ними не делаются. Вот код функции: CREATE OR REPLACE function date_test ( p_user_id in number, p_date_from in date, p_date_to in date default to_date('01.01.2000')) return boolean is v_Max_open_date date; -- максимальная дата из истории (нзначение лидера) v_Max_close_date date; -- максимальная дата из истории (отмена лидера) begin -- Если назначается новый лидер if p_date_to = to_date('01.01.2000') then null; select max(hist_to) into v_Max_close_date from ag_t_group_leader where user_id=p_user_id; if p_date_from > v_Max_close_date then -- dbms_output.put_line('дата утверждения подходит'); return true; else --dbms_output.put_line('дата утверждения не подходит'); return false; end if; -- Если отменяется лидер else null; select max(hist_from) into v_Max_open_date from ag_t_group_leader where user_id=p_user_id; if p_date_to > v_Max_open_date then -- dbms_output.put_line('дата отмены подходит'); return true; else -- dbms_output.put_line('дата отмены не подходит'); return false; end if; end if; end; ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2010, 09:36 |
|
шаблон формата даты
|
|||
---|---|---|---|
#18+
psevdo, проверьте Формат Даты используемый по умолчанию в Вашем приложении. Shared Components -> Edit Globalization Attributes -> Application Date Format. Я предполагаю, что он отличается от 'DD.MM.YYYY', и выражение to_date('01.01.2000') смысла не имеет. Чтобы не зависеть от принятого по умолчанию формата даты есть смысл поменять везде to_date('01.01.2000') на to_date('01.01.2000', 'DD.MM.YYYY'). ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2010, 11:16 |
|
шаблон формата даты
|
|||
---|---|---|---|
#18+
В догонку, Если Ваш Application Date Format 'DD.MM.YYYY', то вероятно ошибка вызвана неявным пребразованием строки в дату при вызове функции и нужно сделать явное пребразование to_date(xxx, 'DD.MM.YYYY HH24:MI'). ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2010, 11:29 |
|
шаблон формата даты
|
|||
---|---|---|---|
#18+
Здравствуйте, помогите пожалуйста. У меня на форме есть Date Picker (DD.MM.YYYY) я сделала валидатор на формат ввода даты но если я в поле ввожу текст, до валидатора дело не доходит, сразу вылетает ошибка "ORA-01858: a non-numeric character was found where a numeric was expected Error ERR-1024 Unable to run "function body returning text" validation. OK " Кто-нибудь сталкивался с такой проблемой? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2010, 18:26 |
|
шаблон формата даты
|
|||
---|---|---|---|
#18+
darimel, приведите здесь PL/SQL-код Вашего валидатора. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2010, 18:31 |
|
шаблон формата даты
|
|||
---|---|---|---|
#18+
declare t number; begin select nvl((select 1 from dual where REGEXP_LIKE(:P34_BUYING_DATE, '^\d{2}\.\d{2}\.\d{4}$')), 0) into t from dual; if t = 0 then return 'Формат даты неверный.'; else return null; end if; end; ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2010, 18:40 |
|
шаблон формата даты
|
|||
---|---|---|---|
#18+
darimel, 0. Validations бывают разных типов, один из них - Regular Expression. Для такого типа проверки Вы можете сразу ввести регулярное выражение, с которым будет сравниваться значение в элементе, без всяких злоупотреблений блоками. 1. Для подобных проверок лучше использовать функцию IsDateValid и PL/SQL Expression: Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2010, 19:01 |
|
|
start [/forum/topic.php?fid=50&gotonew=1&tid=1877112]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
54ms |
get topic data: |
12ms |
get first new msg: |
8ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
others: | 257ms |
total: | 421ms |
0 / 0 |