簡體   English   中英

連接到 oracle 數據庫 (odbc):無效的用戶名/密碼; 登錄被拒絕

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM