Манипуляция датой РОракла

#r #oracle #dbplyr #roracle

Вопрос:

Я установил ROracle на свой компьютер и успешно подключился к удаленной базе данных Oracle. Я могу взаимодействовать с таблицами с помощью dbplyr и собирать данные на своем компьютере. Но когда я пытаюсь отфильтровать столбцы дат с помощью функции фильтра dplyr, я получаю такую ошибку:

 Error in .valueClassTest(ans, "data.frame", "fetch") : invalid value from generic function ‘fetch’, class “try-error”, expected “data.frame”  

Столбцы даты отображаются как дата и время, но функции lubridate не работают (например, преобразование даты и времени в дату с использованием as_date) для них, но не выдают никаких ошибок и base-r как.Дата выдает эту ошибку:

 Error in .oci.SendQuery(conn, statement, data = data, prefetch = prefetch, :   ORA-00936: missing expression  

Если я собираю данные на своем компьютере, столбцы даты и времени отображаются правильно и работают со всеми указанными функциями.

Спасибо.

Комментарии:

1. Пожалуйста, не могли бы вы добавить код, который создает ошибку? Также было бы полезно иметь переведенный код базы данных запроса. Вы можете использовать show_query это, чтобы сделать это.

2. Решается с помощью собственной функции SQL в канале dplyr (например, to_date()).

Ответ №1:

Решена проблема с помощью собственной функции SQL в канале dplyr с правильной маской даты.

 #setup db connection con...  tbl(con, "my_tbl") %gt;%  filter(Dates_column lt;= to_date('04.11.2021','DD.MM.YYYY'))