[英]Connection to oracle database (odbc): invalid username/password; logon denied
我想使用 R package odbc 連接到 oracle 數據庫。
以下給出錯誤:
host <- 'something'
port <- 1523
svc <- "this"
pass <- '***'
user <- 'me'
con <- odbc::dbConnect(DBI::dbDriver("Oracle"),
UID=user,
PWD=pass,
dbname = svc)
ORA-01017: invalid username/password; logon denied
完整版做同樣的事情:
connect.string <- paste(
"(DESCRIPTION=",
"(ADDRESS=(PROTOCOL=tcp)(HOST=", host, ")(PORT=", port, "))",
"(CONNECT_DATA=(SERVICE_NAME=", svc, ")))", sep = "")
con <- odbc::dbConnect(DBI::dbDriver("Oracle"),
UID=user,
PWD=pass,
dbname = connect.string)
ORA-01017: invalid username/password; logon denied
這是來自 dbDriver 的信息:
DBI::dbDriver("Oracle")
Driver name: Oracle (OCI)
Driver version: 1.3-1
Client version: 12.2.0.1.0
Connections processed: 0
Open connections: 0
Interruptible: FALSE
Unicode data as utf8: TRUE
Oracle type attributes: FALSE
但是當我使用具有相同信息的 RODBC 時,它一切正常:
connect.string2 <- paste0("Driver={Oracle in OraClient12Home1};Dbq=",svc,";Uid=",user,";Pwd=",pass,";")
con <-RODBC::odbcDriverConnect(connect.string2)
RODBC::sqlTables(con, tableType = "TABLE") # looks perfect
我真的很想繼續使用 odbc,因為我有一個構建在它上面的 package(連接到幾個不同的數據庫,odbc 到目前為止一直運行良好)。 為什么這次不起作用?
我不知道為什么個別參數方法不起作用,但您始終可以將連接字符串與DBI
/ odbc
一起使用。 來自https://github.com/r-dbi/odbc#connection-strings ,
或者,您可以將完整的連接字符串作為 .connection_string 參數傳遞。 連接字符串參考是一個有用的資源,其中包含適用於各種數據庫的示例連接字符串。
library(DBI) con <- dbConnect(odbc::odbc(), .connection_string = "Driver={PostgreSQL Driver};Uid=postgres;Pwd=password;Host=localhost;Port=5432;Database=test_db;")
由此,我懷疑你可以這樣做:
connect.string2 <- paste0("Driver={Oracle in OraClient12Home1};Dbq=",svc,";Uid=",user,";Pwd=",pass,";")
con <- odbc::dbConnect(DBI::dbDriver("Oracle"),
.connection_string = connect.string2)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.