Ошибка в приложении: ORA-19202: ошибка при XML обработке ORA-01843: недопустимый месяц - Oracle Apex - PullRequest
0 голосов
/ 16 января 2020

У меня проблема в Oracle Инструменте Apex. А именно, я делал заявку на бронирование столика и хотел распечатать все брони с указанной датой c. Поэтому я выбираю дату, под которой я хочу распечатать все заказы, нажимаю кнопку печати, и Apex выдает мне следующую ошибку:

ORA-19202: ошибка при обработке XML ORA-01843 : недопустимый месяц.

Ранее я аккуратно добавил AOP и текстовый документ.

В правом окне я выбрал в SQL тип данных: SQL и в данных кода я поставил код. Позже я добавил «TO DATE in code», но это не решает мою проблему.

Вот код:

select 
    'file1' as "filename",
    cursor(select
        TO_DATE(D.SIFRA_DATUMA_REZERVACIJE, 'MM/DD/YYYY') as "datum_rezervacije",
        cursor(select
            R.SIFRA_REZERVACIJE as "sifra_rezervacije", 
            G.IME_PREZIME as "ime_prezime", 
            R.BROJ_OSOBA as "broj_osoba",
            S.SIFRA_STOLA as "broj_stola",
            R.NAPOMENA_REZERVACIJE as "napomena",
            P.NAZIV_PRIGODE as "prigoda"
            from 
        GOST G, PRIGODA P, STOL S, REZERVACIJA R   where 
            R.SIFRA_GOST_REZERVACIJA = G.SIFRA_GOSTA
            and R.SIFRA_STOL_REZERVACIJA = S.SIFRA_STOLA
            and R.SIFRA_PRIGODE_REZERVACIJA = P.SIFRA_PRIGODE 
            and TO_DATE(R.SIFRA_DATUM_REZERVACIJE_REZERVACIJA, 'MM/DD/YYYY' ) = TO_DATE(:P6_NEW, 'MM/DD/YYYY') order by TO_DATE(R.SIFRA_DATUM_REZERVACIJE_REZERVACIJA, 'MM/DD/YYYY')) as "rezervacija"
        from
        DATUM_REZERVACIJE D  
        where 
        TO_DATE(D.SIFRA_DATUMA_REZERVACIJE, 'MM/DD/YYYY')= TO_DATE(:P6_NEW, 'MM/DD/YYYY')) as "data" 
from dual;

enter image description here

enter image description here

1 Ответ

0 голосов
/ 16 января 2020

Ваш формат даты в "американском стиле", но язык, на котором указано имя столбца, явно не английский sh. Может ли быть так, что вы конвертируете дату в неправильный формат, а 'dd / mm / yyyy' является правильным форматом, который будет использоваться здесь?

Например, вставьте 30 декабря в таблицу сначала

insert into some_table(date_col) values(to_date('30/12/2019', 'dd/mm/yyyy'));

тогда это (см. Формат даты) вызовет то же самое, что и вы, - недопустимый месяц

select to_date(date_col, 'mm/dd/yyyy') from some_table;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...