#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'))