Я пытаюсь подключить R к моей базе данных Oracle, но постоянно получаю следующую ошибку, когда вызываю следующую функцию:
Error in .jcall(drv@jdrv, "Ljava/sql/Connection;", "connect", as.character(url)[1], :
java.sql.SQLException: NL Exception was generated
У меня есть 2 файла, файл functions.r и мой working.rфайл.Вот что у меня есть в каждом файле:
functions.r
caesi <- function(DB){
## Create an Oracle connection to a
## remote database using the SID in the connect string.
drv <- JDBC(driverClass="oracle.jdbc.OracleDriver", classPath="E:/filelocation/ojdbc6.jar")
## user details
username = "USERNAME" ## Your user name
password = "PASSWORD" ## Your password
## Refer to Oracle Database Net Services Administator's Guide for
## details on connect string specification.
## Current connection string this will change when we replatform
host <- "LOCALHOST"
port <- 1521
svc <- "rtreports"
connect.string <- paste("(DESCRIPTION=", " (ADDRESS= (PROTOCOL=TCP)(HOST= ",host,")(PORT=",port,"))","(CONNECT_DATA= (SERVICE_NAME=",svc,")))",sep = "")
## Use username/password authentication.
ErrReturn <- 0
return({
con <-dbConnect(drv,paste0("jdbc:oracle:thin:@localhost:1521:orcll",connect.string),username, password)
})
}
Get_Data = function(){
ch_or <- caesi("DB")
data <- dbGetQuery(ch_or, paste0(("SELECT * FROM MYTABLE")))
dbDisconnect(ch_or)
outcoords <- data
return(outcoords)
}
и мой файл working.r
#
library(tidyverse)
library(RJDBC)
library(rJava)
library(ggplot2)
library(dplyr)
source("functions.R")
df <- Get_Data()
всякий раз, когда я запускаю Get_Data, я получаюсообщение об ошибке.Я не уверен, где я иду не так, был бы очень признателен, если бы кто-то мог посоветовать, поскольку я новичок в R, и был бы очень рад, если бы кто-то мог помочь.
Нирмала, после внесения изменений, которые вызапрошенный, я прокомментировал следующий раздел в моем коде:
## Current connection string this will change when we replatform
##host <- "LOCALHOST"
##port <- 1521
##svc <- "rtreports"
##connect.string <- paste("(DESCRIPTION=", " (ADDRESS= (PROTOCOL=TCP)(HOST= ",host,")(PORT=",port,"))","(CONNECT_DATA= (SERVICE_NAME=",svc,")))",sep = "")
, а затем изменил строку подключения на:
con <-dbConnect(drv,paste0("jdbc:oracle:thin:@localhost:1521:orcll"),username, password)
, но теперь это дает мне следующую ошибку:
Error in .jcall(drv@jdrv, "Ljava/sql/Connection;", "connect", as.character(url)[1], :
java.sql.SQLException: ORA-01017: invalid username/password; logon denied
, хотя имя пользователя / пароль верны и работают, так как я могу подключиться к базе данных в sql developer.