Adam Pirsl
Adam Pirsl

Reputation: 21

JDBC error when querying Oracle 11.1 (ORA-00933)

I have searched high and low for answers so apologies if it has already been answered!

Using R I am trying to perform a lazy evaluation of Oracle 11.1 databases. I have used JDBC to facilitate the connection and I can confirm it works fine. I am also able to query tables using dbGetQuery, although the results are so large that I quickly run out of memory.

I have tried dbplyr/dplyr tbl(con, "ORACLE_TABLE") although I get the following error:

Error in .verify.JDBC.result(r, "Unable to retrieve JDBC result set for ",  : 
  Unable to retrieve JDBC result set for SELECT *
FROM "ORACLE_TABLE" AS "zzz39"
WHERE (0 = 1) (ORA-00933: SQL command not properly ended)

I have also tried using db_table <- tbl(con, in_schema('ORACLE_TABLE'))

This is happening with all databases I am connected to, despite being able to perform a regular dbGetQuery.

Full Code:

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

Oracle Connection

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")

Solved:

  1. Updated Rstudio + Packages.

  2. Follow this manual: https://www.linkedin.com/pulse/connect-oracle-database-r-rjdbc-tianwei-zhang/

  3. Insert the following code after 'con':

    sql_translate_env.JDBCConnection <- dbplyr:::sql_translate_env.Oracle sql_select.JDBCConnection <- dbplyr:::sql_select.Oracle sql_subquery.JDBCConnection <- dbplyr:::sql_subquery.Oracle

Upvotes: 2

Views: 607

Answers (0)

Related Questions