powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ORA-01843: not a valid month при запросе из view
23 сообщений из 23, страница 1 из 1
ORA-01843: not a valid month при запросе из view
    #39755727
AserYZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день

Опять с глупым вопросом

Oracle 12 (патчи точно не знаю - система чужая), ошибка повторяется на конкретной схеме, прав менять нет, все делается удаленно через запускателя который вообще не ораклист.

Есть вьюха,которая формирует одно из полей как to_date(..., 'MMYYYY') из конкатенации 2х текстовых полей с соответствующим выравниванием. Формирует вроде верно.
В user_tab_columns тип поля светится как DATE

Пытаюсь сделать запрос вида

Код: plsql
1.
2.
select date_field from view1 
where date_field< to_date('01012018','DDMMYYYY')



и получаю

ORA-01843: not a valid month

При этом вся вьюха спокойно показывается и выфетчивается полностью в разных всяких тулах типа PL/SQL developer или SQL Plus (где дата без ошибок преобразуется), таблица маленькая, около 40К записей.

Вьюха спокойно без ошибок обходится таким кодом

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
declare 
v_date date;
  cursor c1 is select date_field from view1;
begin
     dbms_output.put_line('Start');
     for cr in c1 loop
          begin 
                if cr.date_field < to_date('01012018','DDMMYYYY') then null;
                end if;               
          exception
                when others then dbms_output.put_line('Error detected ID='||cr.id_field);
         end;
    end loop;
     dbms_output.put_line('End');
end;



Вопрос - может кто сталкивался и что бы это могло быть?
...
Рейтинг: 0 / 0
ORA-01843: not a valid month при запросе из view
    #39755736
dmdmdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AserYZЕсть вьюха,которая формирует одно из полей как to_date(..., 'MMYYYY') из конкатенации 2х текстовых полей с соответствующим выравниванием. Формирует вроде верно.
В user_tab_columns тип поля светится как DATE


Из отсебятины непонятно.
Код вьюхи или test case.

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
select d
  from ( 
select s, to_date(s, 'MMYYYY') d
  from (
         select '012018' s from dual union all
         select '012019' s from dual union all
         select '012020' s from dual
       )
       )
 where d <= to_date('01012018','DDMMYYYY')

...
Рейтинг: 0 / 0
ORA-01843: not a valid month при запросе из view
    #39755764
Фотография Жук в муравейнике
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YZ,

Я бы на всякий случай начал с
Код: plsql
1.
2.
select TO_CHAR(date_field,'DD/MM/YYYY') from view1 
where date_field< to_date('01012018','DDMMYYYY')


или даже
Код: plsql
1.
2.
select 1 from view1 
where date_field< to_date('01012018','DDMMYYYY')
...
Рейтинг: 0 / 0
ORA-01843: not a valid month при запросе из view
    #39755766
Фотография Fogel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dmdmdmИз отсебятины непонятно.

Понятно:
AserYZошибка повторяется на конкретной схеме, прав менять нет, все делается удаленно через запускателя который вообще не ораклист.
....
При этом вся вьюха спокойно показывается и выфетчивается полностью в разных всяких тулах типа PL/SQL developer или SQL Plus (где дата без ошибок преобразуется), таблица маленькая, около 40К записей.

AserYZ, разные региональные настройки сессии.
Измени запрос для удалённого вызова на такой:
Код: plsql
1.
2.
select date_field from view1 
where date_field< DATE '2018-01-01'


или такой:
Код: plsql
1.
2.
select date_field from view1 
where date_field< to_date('01012018','DDMMYYYY', 'NLS_DATE_LANGUAGE = RUSSIAN')


Посмотри результаты и погугли в чём разница (поэкспериментировав с языком, а точнее, посмотрев настройки сессии и базы - это тоже просто находится).

Ну и про это:
AserYZВьюха спокойно без ошибок обходится таким кодом...

Ты уверен, что спокойно и без ошибок?
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
declare 
v_date date;
  cursor c1 is select date_field from view1;
begin
     dbms_output.put_line('Start');
     for cr in c1 loop
          begin 
                if cr.date_field < to_date('01012018','DDMMYYYY') then null;
                end if;               
          exception
                when others then dbms_output.put_line('Error detected ID='||cr.id_field);
         end;
    end loop;
     dbms_output.put_line('End');
end;
...
Рейтинг: 0 / 0
ORA-01843: not a valid month при запросе из view
    #39755780
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AserYZВьюха спокойно без ошибок обходится таким кодомНу как, хоть одну ошибку этот "код" детектирует?
...
Рейтинг: 0 / 0
ORA-01843: not a valid month при запросе из view
    #39755789
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AserYZ,

кроме date_field вюха имеет поля типа to_date?

мож слетает не із-за date_field

.....
stax
...
Рейтинг: 0 / 0
ORA-01843: not a valid month при запросе из view
    #39755790
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FogelAserYZ, разные региональные настройки сессии.


при каких региональных настройках сессии будет слетать to_date('012018', 'MMYYYY')?

.....
stax
...
Рейтинг: 0 / 0
ORA-01843: not a valid month при запросе из view
    #39755791
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AserYZ Формирует вроде верно.


проверте "вроде", напр для mm := null;

зы
90% даю что формируется неверно

.....
stax
...
Рейтинг: 0 / 0
ORA-01843: not a valid month при запросе из view
    #39755796
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AserYZ,

проверочный код с очепяткой cr.id_field

слетать он тоже должен
exception
when others then dbms_output.put_line('Error detected ID='||cr.id_field);
не отработает

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
  1  declare
  2  v_date date;
  3    cursor c1 is select id_field,date_field from (
  4  select 1 id_field,to_date('112018','mmyyyy') date_field from dual union all
  5  select 2 id_field,to_date('122018','mmyyyy') date_field from dual union all
  6  select 3 id_field,to_date('132018','mmyyyy') date_field from dual union all
  7  select 4 id_field,to_date('102018','mmyyyy') date_field from dual) view1;
  8  begin
  9       dbms_output.put_line('Start');
 10       for cr in c1 loop
 11            begin
 12                  if cr.date_field < to_date('01122018','DDMMYYYY') then
 13                     dbms_output.put_line('Ok ID='||cr.id_field);
 14                  end if;
 15            exception
 16                  when others then dbms_output.put_line('Error detected ID='||cr.id_field);
 17           end;
 18      end loop;
 19       dbms_output.put_line('End');
 20* end;
SQL> /
Start
Ok ID=1
declare
*
ERROR at line 1:
ORA-01843: not a valid month
ORA-06512: at line 10



для проверочного я б іспользовал
сursor c1 is select текст із в'ю без преобразований to_date,
а уже в цикле проверял корректность mmyyyy

.....
stax
...
Рейтинг: 0 / 0
ORA-01843: not a valid month при запросе из view
    #39755828
AserYZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коллеги, спасибо за ответы и возможные версии

Отвечу сразу по id_field- тут моя опечатка, все-таки приходится перепечатывать вручную да еще и изменять сохраняя логику

Изначально курсор содержал id_field.

Чтобы убрать все сомнения насчет этого с курсором

Код: plsql
1.
cursor c1 is select * from view1;


отрабатывает на ура

Код: plsql
1.
2.
select 1 from view1 
where date_field< to_date('01012018','DDMMYYYY')


не отрабатывает, валится с той же ошибкой (ORA-01843), поэтому подозрение пало именно на косяки при проверке во фразе WHERE.

Не уверен, что региональные настройки как-то тут влияют, для этого и используется явный формат в to_date, но для очистки совести взял NLS формат из сессии и указал без преобразований - все то же.

Всяческие извращения с датой целью вызвать ошибку преобразования типа
Код: plsql
1.
select to_char(date_field,'MM') from view1;

Код: plsql
1.
select date_field+1, add_months(date_field,7), add_months(date_field,-7) from view1;


ошибки не вызывают, фетчатся полностью, хотя по идее, если дата изначально кривая, должны были бы валиться хоть с какой-то ошибкой.
...
Рейтинг: 0 / 0
ORA-01843: not a valid month при запросе из view
    #39755831
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AserYZфетчатся полностьюУверен?
Код: plsql
1.
select max(date_field) from view1;
...
Рейтинг: 0 / 0
ORA-01843: not a valid month при запросе из view
    #39755833
AserYZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StaxAserYZ,

проверочный код с очепяткой cr.id_field

слетать он тоже должен
exception
when others then dbms_output.put_line('Error detected ID='||cr.id_field);
не отработает

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
  1  declare
  2  v_date date;
  3    cursor c1 is select id_field,date_field from (
  4  select 1 id_field,to_date('112018','mmyyyy') date_field from dual union all
  5  select 2 id_field,to_date('122018','mmyyyy') date_field from dual union all
  6  select 3 id_field,to_date('132018','mmyyyy') date_field from dual union all
  7  select 4 id_field,to_date('102018','mmyyyy') date_field from dual) view1;
  8  begin
  9       dbms_output.put_line('Start');
 10       for cr in c1 loop
 11            begin
 12                  if cr.date_field < to_date('01122018','DDMMYYYY') then
 13                     dbms_output.put_line('Ok ID='||cr.id_field);
 14                  end if;
 15            exception
 16                  when others then dbms_output.put_line('Error detected ID='||cr.id_field);
 17           end;
 18      end loop;
 19       dbms_output.put_line('End');
 20* end;
SQL> /
Start
Ok ID=1
declare
*
ERROR at line 1:
ORA-01843: not a valid month
ORA-06512: at line 10



для проверочного я б іспользовал
сursor c1 is select текст із в'ю без преобразований to_date,
а уже в цикле проверял корректность mmyyyy

.....
stax

так я ж вроде так и сделал. Я взял дату из view без преобразования и потом в цикле сравниваю имитируя поведение WHERE. Сдается в контексте PL/SQL гипотетический баг пофикшен а вот в SQL нет.

И отрабатывает, зараза, без ошибок. Пишет только Start и End.
...
Рейтинг: 0 / 0
ORA-01843: not a valid month при запросе из view
    #39755834
AserYZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElicAserYZфетчатся полностьюУверен?
Код: plsql
1.
select max(date_field) from view1;



Ошибки нет
...
Рейтинг: 0 / 0
ORA-01843: not a valid month при запросе из view
    #39755839
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
AserYZ,

Просто планозависимая херня: ошибка вылезает, когда предикат по to_date просовывается на ранние шаги, до фильтрации записей. Проверьте исходные данные.
...
Рейтинг: 0 / 0
ORA-01843: not a valid month при запросе из view
    #39755840
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AserYZ,

может что-то соптимизировал оракля, в поане видны предикаты where можно глянуть

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
  1  with t as (select to_date('012018','mmyyyy') d,dummy  from dual)
  2* select * from t where d < sysdate --to_date('01012019','ddmmyyyy')
SQL> /

D        D
-------- -
01.01.18 X


Execution Plan
----------------------------------------------------------
Plan hash value: 3752461848

---------------------------------------------------------------------------
| Id  | Operation          | Name | Rows  | Bytes | Cost (%CPU)| Time     |
---------------------------------------------------------------------------
|   0 | SELECT STATEMENT   |      |     1 |     2 |     2   (0)| 00:00:01 |
|*  1 |  FILTER            |      |       |       |            |          |
|   2 |   TABLE ACCESS FULL| DUAL |     1 |     2 |     2   (0)| 00:00:01 |
---------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   1 - filter(SYSDATE@!>TO_DATE(' 2018-01-01 00:00:00', 'syyyy-mm-dd
              hh24:mi:ss'))



я б еще поробовал
1)
Код: plsql
1.
2.
select * from view1 
where date_field+1<= to_date('01012018','DDMMYYYY')



2)
Код: plsql
1.
2.
select sum(sysdate-date_field) from view1 
where f_yyyy||f_mm< '201801'



.....
stax
...
Рейтинг: 0 / 0
ORA-01843: not a valid month при запросе из view
    #39755845
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AserYZ Сдается в контексте PL/SQL гипотетический баг пофикшен а вот в SQL нет.

И отрабатывает, зараза, без ошибок. Пишет только Start и End.

попробуйте в SQL условие не константой
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
  1* select * from t_v where d < to_date(:dd,'ddmmyyyy')
SQL> /

        ID D
---------- --------
         1 01.01.18
         2 01.02.18


Execution Plan
----------------------------------------------------------
Plan hash value: 1601196873

--------------------------------------------------------------------------
| Id  | Operation         | Name | Rows  | Bytes | Cost (%CPU)| Time     |
--------------------------------------------------------------------------
|   0 | SELECT STATEMENT  |      |     1 |    20 |     3   (0)| 00:00:01 |
|*  1 |  TABLE ACCESS FULL| T    |     1 |    20 |     3   (0)| 00:00:01 |
--------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   1 - filter(TO_DATE("M"||"Y",'mmyyyy')<TO_DATE(:DD,'ddmmyyyy'))

Note
-----
   - dynamic sampling used for this statement (level=2)

SQL> ed
Wrote file afiedt.buf

  1* select * from t_v where d < to_date('01032018','ddmmyyyy')
SQL> /

        ID D
---------- --------
         1 01.01.18
         2 01.02.18


Execution Plan
----------------------------------------------------------
Plan hash value: 1601196873

--------------------------------------------------------------------------
| Id  | Operation         | Name | Rows  | Bytes | Cost (%CPU)| Time     |
--------------------------------------------------------------------------
|   0 | SELECT STATEMENT  |      |     2 |    40 |     3   (0)| 00:00:01 |
|*  1 |  TABLE ACCESS FULL| T    |     2 |    40 |     3   (0)| 00:00:01 |
--------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   1 - filter(TO_DATE("M"||"Y",'mmyyyy')<TO_DATE(' 2018-03-01
              00:00:00', 'syyyy-mm-dd hh24:mi:ss'))

Note
-----
   - dynamic sampling used for this statement (level=2)

SQL>SQL> print :dd

DD
--------------------------------
01032018

SQL>
...
Рейтинг: 0 / 0
ORA-01843: not a valid month при запросе из view
    #39755850
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
xtenderAserYZ,

Просто планозависимая херня: ошибка вылезает, когда предикат по to_date просовывается на ранние шаги, до фильтрации записей. Проверьте исходные данные.простой пример:
простой запрос без предикатов отрабатывает нормально:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
with 
  date_1 as (
     select 1 id, '0101' d1 from dual union all
     select 2 id, '0512' d1 from dual union all
     select 3 id, '1515' d1 from dual
  )
 ,date_2 as (
     select 1 id, '2018' d2 from dual union all
     select 2 id, '2018' d2 from dual union all
     select 3 id, '2018' d2 from dual 
 )
 ,t_filter as (
     select 1 id, 'yes' f from dual union all
     select 2 id, 'yes' f from dual union all
     select 3 id, 'no' f from dual 
 )
,view_ as (
   select   t_filter.f
          , to_date(date_1.d1||date_2.d2,'ddmmyyyy') dt
   from date_1,date_2,t_filter
   where 
         date_1.id = date_2.id
     and date_2.id = t_filter.id
     and t_filter.f = 'yes'
)
select *
from view_
/

А теперь просто добавим where dt<date'2019-01-01':
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
with 
  date_1 as (
     select 1 id, '0101' d1 from dual union all
     select 2 id, '0512' d1 from dual union all
     select 3 id, '1515' d1 from dual
  )
 ,date_2 as (
     select 1 id, '2018' d2 from dual union all
     select 2 id, '2018' d2 from dual union all
     select 3 id, '2018' d2 from dual 
 )
 ,t_filter as (
     select 1 id, 'yes' f from dual union all
     select 2 id, 'yes' f from dual union all
     select 3 id, 'no' f from dual 
 )
,view_ as (
   select   t_filter.f
          , to_date(date_1.d1||date_2.d2,'ddmmyyyy') dt
   from date_1,date_2,t_filter
   where 
         date_1.id = date_2.id
     and date_2.id = t_filter.id
     and t_filter.f = 'yes'
)
select *
from view_
where dt<date'2019-01-01'
/
          , to_date(date_1.d1||date_2.d2,'ddmmyyyy') dt
                              *
ERROR at line 19:
ORA-01843: not a valid month


лечится парой хинтов (ну или с помощью rownum):
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
with 
  date_1 as (
     select 1 id, '0101' d1 from dual union all
     select 2 id, '0512' d1 from dual union all
     select 3 id, '1515' d1 from dual
  )
 ,date_2 as (
     select 1 id, '2018' d2 from dual union all
     select 2 id, '2018' d2 from dual union all
     select 3 id, '2018' d2 from dual 
 )
 ,t_filter as (
     select 1 id, 'yes' f from dual union all
     select 2 id, 'yes' f from dual union all
     select 3 id, 'no' f from dual 
 )
,view_ as (
   select   t_filter.f
          , to_date(date_1.d1||date_2.d2,'ddmmyyyy') dt
   from date_1,date_2,t_filter
   where 
         date_1.id = date_2.id
     and date_2.id = t_filter.id
     and t_filter.f = 'yes'
)
select/*+ no_merge(view_) opt_param('_optimizer_filter_pushdown' 'false')  */ *
from view_
where dt<date'2019-01-01'
/

...
Рейтинг: 0 / 0
ORA-01843: not a valid month при запросе из view
    #39755851
AserYZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xtenderAserYZ,

Просто планозависимая херня: ошибка вылезает, когда предикат по to_date просовывается на ранние шаги, до фильтрации записей. Проверьте исходные данные.

Это не просто учитывая обстоятельства. Сосредоточимся на этом пока.
...
Рейтинг: 0 / 0
ORA-01843: not a valid month при запросе из view
    #39755867
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xtenderAserYZ,
Проверьте исходные данные.
Данные могут быть и правильными, архитектор так намудрил

у меня такое часто с to_number вылазило

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
  1  with t as (
  2  select 1 id,'1' par,'1' val from dual union
  3  select 2 id,'1' par,'2' val from dual union
  4  select 3 id,'1' par,'3' val from dual union
  5  select 1 id,'2' par,'Зелений' val from dual union
  6  select 2 id,'2' par,'Синій' val from dual
  7  )
  8  ,p as (
  9  select '1' par_id,'Сумма' n from dual union
 10  select '2' par_id,'Цвет' from dual
 11  )
 12  select id,to_number(val) summa from t,p
 13* where t.par=p.par_id and p.n='Сумма' 
SQL> /

        ID      SUMMA
---------- ----------
         1          1
         2          2
         3          3

SQL> ed
Wrote file afiedt.buf

  1  with t as (
  2  select 1 id,'1' par,'1' val from dual union
  3  select 2 id,'1' par,'2' val from dual union
  4  select 3 id,'1' par,'3' val from dual union
  5  select 1 id,'2' par,'Зелений' val from dual union
  6  select 2 id,'2' par,'Синій' val from dual
  7  )
  8  ,p as (
  9  select '1' par_id,'Сумма' n from dual union
 10  select '2' par_id,'Цвет' from dual
 11  )
 12  select id,to_number(val) summa from t,p
 13* where t.par=p.par_id and p.n='Сумма' and t.val<3
SQL> /
select 1 id,'2' par,'Зелений' val from dual union
                    *
ERROR at line 5:
ORA-01722: invalid number



.....
stax
...
Рейтинг: 0 / 0
ORA-01843: not a valid month при запросе из view
    #39755872
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
StaxДанные могут быть и правильнымия и не говорил, что данные "неправильные"...
...
Рейтинг: 0 / 0
ORA-01843: not a valid month при запросе из view
    #39755899
AserYZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Рекомендованные хинты исправили ситуацию.

Спасибо уважаемому xtender .
...
Рейтинг: 0 / 0
ORA-01843: not a valid month при запросе из view
    #39755906
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AserYZРекомендованные хинты исправили ситуацию.

Спасибо уважаемому xtender .

значит есть строки где значение в поле "месяц" not a valid month

....
stax
...
Рейтинг: 0 / 0
ORA-01843: not a valid month при запросе из view
    #39755914
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xtenderлечится парой хинтов (ну или с помощью rownum):


Но возможно за счет производительности. Взависимости от ситуации CASE может быть лучшим решением:

Код: plsql
1.
2.
3.
case t_filter.f
  when 'yes' then to_date(date_1.d1||date_2.d2,'ddmmyyyy')
end dt



SY.
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ORA-01843: not a valid month при запросе из view
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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