Решено - R - ошибка JDB C при запросе Oracle 11.1 (ORA-00933) - PullRequest
1 голос
/ 20 февраля 2020

Я искал высокий и низкий ответы, поэтому извиняюсь, если на него уже отвечали!

Используя RI, я пытаюсь выполнить ленивую оценку Oracle 11.1 баз данных. Я использовал JDB C для облегчения соединения и могу подтвердить, что он работает нормально. Я также могу запрашивать таблицы, используя dbGetQuery, хотя результаты настолько велики, что мне быстро не хватает памяти.

Я пробовал dbplyr / dplyr tbl (con, "ORACLE_TABLE"), хотя я получаю следующую ошибку :

Ошибка в .verify.JDB C .result (r, "Невозможно получить набор результатов JDB C для",: Невозможно получить набор результатов JDB C для SELECT * FROM "ORACLE_TABLE "AS" zzz39 "WHERE (0 = 1) (ORA-00933: SQL команда не завершена должным образом)

Я также пытался использовать db_table <- tbl (con, in_schema ('ORACLE_TABLE')) * </p>

Это происходит со всеми базами данных, к которым я подключен, несмотря на то, что я могу выполнить обычный dbGetQuery.

Полный код:

# Libraries
library(odbc)
library(DBI) 
library(config)
library(RJDBC) 
library(dplyr)
library(tidyr)
library(magrittr)
library(stringr)
library(xlsx)
library(RSQLite)
library(dbplyr)

Oracle Соединение

db <- config::get('db')
drv1 <- JDBC(driverClass=db$driverClass, classPath=db$classPath)
con_db <- dbConnect(drv1, db$connStr, db$orauser, db$orapw,  trusted_connection = TRUE)

    # Query (This one works but the data set is too large)



 db_data <- dbSendQuery(con_db, "SELECT end_dte, reference, id_number FROM ORACLE_TABLE where end_dte > '01JAN2019'")

    **# Query (this one wont work)**



 oracle_table <- tbl(con_db, "ORACLE_TABLE")

Решено:

  1. Обновлены пакеты Rstudio +.
  2. Следуйте этому руководству: https://www.linkedin.com/pulse/connect-oracle-database-r-rjdbc-tianwei-zhang/
  3. Вставьте следующий код после 'con':

    sql_translate_env.JDBCConnection <- dbplyr ::: sql_translate_env. Oracle sql_select.JD BCConnection <- dbplyr ::: sql_select. Oracle sql_subquery.JDBCConnection <- dbplyr ::: sql_subquery. Oracle</p>

...