В настоящее время я пишу некоторый Кодекс, чтобы получить представление о выпущенных сервисных билетах от моей компании и о том, куда они были направлены.Я использую Birt для Eclipse, чтобы создать отчет, который использует этот код.При использовании Toad 12.0.10.30 не возникает никаких исключений, как и для Birt.При загрузке отчета в Maximo (IBM) и выполнении там отчета, я получаю ошибочный отчет с файлом журнала, в котором говорится, что
[ERROR] [MXQServer1] [] DataSet [Data_Set_Name] fetch failed:
java.sql.SQLDataException: ORA-01843: not a valid month
Я пытался исправить значения REGEX моих значений даты и проверить, все лидолжен работать и, по сути, является датой.
Это части моего Кодекса, в которых используются Даты:
and trunc(creationdate) between to_date('01.01.2019', 'dd.MM.RRRR') and TRUNC(sysdate-1)
Эта часть Кодекса (код написан с помощью блоков «с») выдает список месяцев до вчерашнего дня,Мне нужна эта часть для группировки позже.
SELECT TO_CHAR ( ADD_MONTHS ( start_dt, LEVEL - 1), 'DD/MM/YYYY') AS monate
FROM (
SELECT TRUNC ( TO_DATE ( '01/01/2019', 'DD/MM/YYYY')) AS start_dt,
TRUNC ( sysdate-1) AS end_dt FROM dual
)
CONNECT BY LEVEL <= 1 + MONTHS_BETWEEN ( end_dt , start_dt)
Вот как в отчете, выпущенном через Maximo, создается системная дата:
2019-09-19 07:47:59.0
Может быть, при запуске отчетамесяц разбирается неправильно?Потому что системная дата построена иначе, чем моя формация (ГГГГ-ММ-ДД - ДД / ММ / ГГГГ).Как бы я мог это исправить?
Редактировать: При запуске этого кода "на Maximo"
SELECT VALUE FROM NLS_SESSION_PARAMETERS WHERE PARAMETER = 'NLS_DATE_FORMAT'
, как предложено пользователем @ MT0, я получаю
DD-MON-RR
в качестве возврата.Имея это в виду, есть ли способ изменить мой код, чтобы он работал как задумано?