Я столкнулся со странной ситуацией, когда Oracle не позволяет мне выбирать строки по значению DATE, которое есть в БД.
Есть какая-то таблица со столбцом TRANS_DATE
(тип данных DATE) .
Я пытаюсь импортировать данные с этого Oracle на сервер MS Sql, и импорт завершается с ошибкой "неправильное значение для столбца DATE".
После некоторого расследования я обнаружил, что там странное значение '0002-11-30'
в исходной таблице.
SELECT a
FROM (
SELECT DISTINCT trunc(TRANS_DATE) a
FROM OWS.DOC
)
ORDER BY a asc
Хорошо, я попытался выбрать строки из Oracle по этому значению, но получаю сообщение об ошибке:
SELECT *
FROM OWS.DOC
WHERE TRANS_DATE='0002-11-30 00:00:00'
Ошибка:
SQL Error [1847] [22008]: ORA-01847: day of month must be between 1 and last day of month
Я тоже пробовал этот выбор:
SELECT *
FROM OWS.DOC
WHERE TRANS_DATE=to_date('0002-11-30', 'yyyy-mon-dd')
Он возвращает мне ошибку
SQL Error [1843] [22008]: ORA-01843: not a valid month
Как мне построить PL- SQL запрос выбрать для таких данных?