【发布时间】:2018-06-04 09:20:55
【问题描述】:
我想编写一个运行以下操作的函数:“如果数据库连接已经打开,请关闭它并重新打开一个新连接”
为此,我需要一种方法来检查连接是否已打开
这是我的连接字符串:
library(odbc)
my_conn_string <- paste("Driver{Teradata};DBCName=teradata2690;DATABASE=PRODUCTION;UID=",
username,";PWD=",password, sep="")
t2690 <- dbConnect(odbc::odbc(), .connection_string=my_conn_string)
我想过使用连接的class:
if (is.null(class(t2690)) {
t2690 <- dbConnect(odbc::odbc(), .connection_string=my_conn_string)
}
但这不起作用,因为无论连接是否打开,类都是相同的:
# Class when connected
class(t2690)
[1] "Teradata"
attr(,"package")
[1] ".GlobalEnv"
# Class when not connected
dbDisconnect(t2690)
class(t2690)
[1] "Teradata"
attr(,"package")
[1] ".GlobalEnv"
【问题讨论】:
-
你见过这个问题吗? stackoverflow.com/questions/25530363/…
-
我发现很难调整该答案以使用包
odbc而不是RODBC
标签: r database odbc database-connection