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

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

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
03.01.2019, 21:23
    #39755736
dmdmdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORA-01843: not a valid month при запросе из view
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
04.01.2019, 01:06
    #39755764
Жук в муравейнике
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORA-01843: not a valid month при запросе из view
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
04.01.2019, 01:24
    #39755766
Fogel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORA-01843: not a valid month при запросе из view
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
04.01.2019, 07:31
    #39755780
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORA-01843: not a valid month при запросе из view
AserYZВьюха спокойно без ошибок обходится таким кодомНу как, хоть одну ошибку этот "код" детектирует?
...
Рейтинг: 0 / 0
04.01.2019, 09:38
    #39755789
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORA-01843: not a valid month при запросе из view
AserYZ,

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

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

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


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

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


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

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

.....
stax
...
Рейтинг: 0 / 0
04.01.2019, 10:00
    #39755796
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORA-01843: not a valid month при запросе из view
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
04.01.2019, 12:37
    #39755828
AserYZ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORA-01843: not a valid month при запросе из view
Коллеги, спасибо за ответы и возможные версии

Отвечу сразу по 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
04.01.2019, 12:49
    #39755831
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORA-01843: not a valid month при запросе из view
AserYZфетчатся полностьюУверен?
Код: plsql
1.
select max(date_field) from view1;
...
Рейтинг: 0 / 0
04.01.2019, 12:53
    #39755833
AserYZ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORA-01843: not a valid month при запросе из view
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
04.01.2019, 13:05
    #39755834
AserYZ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORA-01843: not a valid month при запросе из view
ElicAserYZфетчатся полностьюУверен?
Код: plsql
1.
select max(date_field) from view1;



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

Просто планозависимая херня: ошибка вылезает, когда предикат по to_date просовывается на ранние шаги, до фильтрации записей. Проверьте исходные данные.
...
Рейтинг: 0 / 0
04.01.2019, 13:34
    #39755840
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORA-01843: not a valid month при запросе из view
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
04.01.2019, 13:47
    #39755845
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORA-01843: not a valid month при запросе из view
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
04.01.2019, 14:00
    #39755850
Sayan Malakshinov
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORA-01843: not a valid month при запросе из view
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
04.01.2019, 14:10
    #39755851
AserYZ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORA-01843: not a valid month при запросе из view
xtenderAserYZ,

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

Это не просто учитывая обстоятельства. Сосредоточимся на этом пока.
...
Рейтинг: 0 / 0
04.01.2019, 15:00
    #39755867
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORA-01843: not a valid month при запросе из view
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
04.01.2019, 15:16
    #39755872
Sayan Malakshinov
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORA-01843: not a valid month при запросе из view
StaxДанные могут быть и правильнымия и не говорил, что данные "неправильные"...
...
Рейтинг: 0 / 0
04.01.2019, 16:52
    #39755899
AserYZ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORA-01843: not a valid month при запросе из view
Рекомендованные хинты исправили ситуацию.

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

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

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

....
stax
...
Рейтинг: 0 / 0
04.01.2019, 17:49
    #39755914
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORA-01843: not a valid month при запросе из view
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
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ORA-01843: not a valid month при запросе из view / 23 сообщений из 23, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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