Запрос может быть действительным для Oracle.Вам не нужно использовать to_date()
, если вы даете строку даты в формате даты вашего сеанса, хотя, как правило, лучше делать это в любом случае, чтобы избежать подобных проблем.
Похоже, у вас другая NLS_DATE_FORMAT
в среде вашего инструмента по сравнению с SQL Developer, или формат даты сеанса неявно устанавливается OracleCommand.
Вы можете select value from nls_session_parameters where parameter = 'NLS_DATE_FORMAT'
посмотреть, что это такое из SQL * Plus и SQL Developer, а также изваш инструмент;и из nls_database_parameters
, чтобы увидеть, какая из них переопределяет базу данных по умолчанию.
Похоже, ваш инструмент может иметь DD-MON-RR
, и вы ожидаете какой-то другой формат в другом месте, но без проверки этих таблиц трудно сказать, где вывы используете базу данных по умолчанию и где вы переопределяете ее на уровне сеанса.Я предполагаю, что это БД по умолчанию, и у вас есть переопределение в других ваших средах.
В SQL Developer попробуйте alter session set nls_date_format='DD-MON-RR';
, а затем повторно запустите ваш недопустимый запрос - там тоже должно работать.