После долгого процесса устранения неполадок я наконец получил RStudio для подключения к моей рабочей базе данных Oracle с помощью мгновенного клиента. Мотивацией для этого было использование dbplyr для выполнения большей части моих запросов. Однако я не могу отправлять какие-либо запросы через dbplyr, поскольку все имена столбцов и таблиц очень длинные и приводят к ORA-00972: identifier is too long.
Пример ошибки
test <- tbl(con, "long_shcema_name.very_long_and_descriptive_name") %>%
select(a_column)
Error: nanodbc/nanodbc.cpp:1617: 42000: [Oracle][ODBC][Ora]ORA-00972: identifier is too long
<SQL> 'SELECT *
FROM ("long_shcema_name.very_long_and_descriptive_name") "zzz7"
WHERE (0 = 1)'
Я думал, что проблема связана с драйвером. В моей работе используется Oracle 12.2, у которого больше ограничений для идентификаторов, но dbGetQuery отлично работает с мгновенным клиентом.
Рабочий пример без dbplyr
dbGetQuery(con,'
select "a_column"
from
long_shcema_name.very_long_and_descriptive_name')
a_column
1
0
2
.
.
.
Это дает мне желаемый результат.
Есть ли решение?
Я немного раздражен. Мне потребовалось почти три недели, чтобы установить соединение odbc с моей рабочей базой данных с помощью мгновенного клиента. Я с самого начала мог выполнять запросы с помощью RODBC и ROracle, но хотел использовать dplyr. В итоге это не сработало, и у меня не осталось много сока, чтобы понять, почему. Любая помощь будет очень признательна на этом этапе.
get_query()
в конце? - person mnist   schedule 11.01.2020tbl(con, in_schema("long_shcema_name”, “very_long_and_descriptive_name"))
- person Wil   schedule 11.01.2020