R-Studio - 无法连接到 Teradata [英] R-Studio - connection to Teradata is not working

查看:63
本文介绍了R-Studio - 无法连接到 Teradata的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在尝试将 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_e​​nviron() 来确保所有细节是正确的,它奏效了!感谢大家的支持.

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆