R-Studio - 无法连接到 Teradata [英] R-Studio - connection to Teradata is not working
问题描述
我在尝试将 R-studio 连接到 Teradata 时遇到了问题.它给了我
错误:nanodbc/nanodbc.cpp:983:08001:[Teradata][WSock32 DLL] (439) WSA E HostUnreach:Teradata 服务器当前无法通过此网络访问
>
但是,我能够从 cmd 登录到 Teradata.
我的代码使用标准设置的 DBI 连接.
readRenviron("~/.Renviron")数据库类型 <-Teradata"defaultDatabase <-测试"服务器 <- "tera2"数据库 <-teradb"driverList <- odbc::odbcListDrivers()DRIVER <- as.character(subset(driverList, grepl(databaseType, driverList$name, ignore.case = TRUE))$name[1])driverList <- odbc::odbcListDrivers()DRIVER <- as.character(subset(driverList, grepl(databaseType, driverList$name, ignore.case = TRUE))$name[1])查询数据 <- 函数(查询){con <- openConnection()queryDataRet <- data.frame(dbGetQuery(con, query))dbDisconnect(con)返回(查询数据Ret)}openConnection <- function() {con <- dbConnect(odbc::odbc(),司机=司机,服务器 = 服务器,DBCName = 数据库,UID = Sys.getenv("tera_user"),PWD = Sys.getenv("tera_pass"))#注意:密码存储在 .Renviron返回(骗局)}testQuery <- function(){查询 <- paste0 ("select * from test")打印(查询数据(查询))}测试查询()
当我更改密码或用户等任何内容时,它会出错,所以我认为我的代码是正确的,并且连接是在外面的某个地方引起的.有任何想法吗?
好的,几个星期后我决定看看 .Renviron 并使用 usethis::edit_r_environ()
来确保所有细节是正确的,它奏效了!感谢大家的支持.
I have got the issue when trying to connect my R-studio to Teradata. It gives me
Error: nanodbc/nanodbc.cpp:983: 08001: [Teradata][WSock32 DLL] (439) WSA E HostUnreach: The Teradata server can't currently be reached over this network
however, I was able to login to Teradata from cmd.
My code is using DBI connection with standard settings.
readRenviron("~/.Renviron")
databaseType <- "Teradata"
defaultDatabase <- "Test"
SERVER <- "tera2"
DATABASE <- "teradb"
driverList <- odbc::odbcListDrivers()
DRIVER <- as.character(subset(driverList, grepl(databaseType, driverList$name, ignore.case = TRUE))$name[1])
driverList <- odbc::odbcListDrivers()
DRIVER <- as.character(subset(driverList, grepl(databaseType, driverList$name, ignore.case = TRUE))$name[1])
queryData <- function(query) {
con <- openConnection()
queryDataRet <- data.frame(dbGetQuery(con, query))
dbDisconnect(con)
return(queryDataRet)
}
openConnection <- function() {
con <- dbConnect(odbc::odbc(),
Driver = DRIVER,
Server = SERVER,
DBCName = DATABASE,
UID = Sys.getenv("tera_user"),
PWD = Sys.getenv("tera_pass"))
#Note: passwords are stored in .Renviron
return(con)
}
testQuery <- function(){
query <- paste0 ("select * from test")
print(queryData(query))
}
testQuery()
When I change anything such as password or user it gives an error so I reckon my code is correct and the connection is caused somewhere outside. Any ideas?
Ok, after many weeks I decided to have a look at .Renviron and I used usethis::edit_r_environ()
to ensure all details are correct and it worked! Thanks all for all the support.
这篇关于R-Studio - 无法连接到 Teradata的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!