61

有没有人有使用 RODBC 和连接到 MS SQL Server 2005 或 2008 的连接字符串示例。

谢谢你。

4

5 回答 5

104
library(RODBC)
dbhandle <- odbcDriverConnect('driver={SQL Server};server=mysqlhost;database=mydbname;trusted_connection=true')
res <- sqlQuery(dbhandle, 'select * from information_schema.tables')
于 2011-04-19T19:46:09.237 回答
8

取自发布到 r-help

 library(RODBC)
 channel <- odbcDriverConnect("driver=SQL Server;server=01wh155073")
 initdata<- sqlQuery(channel,paste("select * from  test_DB .. 
 test_vikrant"))
 dim(initdata)
 odbcClose(channel)
于 2011-04-19T19:48:44.547 回答
3

如果您必须包含 USERNAME 和 PASSWORD:

library(RODBC) # don't forget to install it beforehand

my_server="ABC05"
my_db="myDatabaseName"
my_username="JohnDoe"
my_pwd="mVwpR55zobUldrdtXqeHez"


db <- odbcDriverConnect(paste0("DRIVER={SQL Server};
                                 server=",my_server,";
                                 database=",my_db,";
                                 uid=",my_username,";
                                 pwd=",my_pwd))


sql="SELECT * FROM dbo.MyTableName" #dbo is the schema here
df <- sqlQuery(db,sql)
于 2019-01-30T23:41:06.820 回答
1

尝试使用 RSQLS 包:https ://github.com/martinkabe/RSQLS

非常快速地将数据从 data.frame 推送到 SQL Server 或从 SQL Server 拉到 data.frame。

例子:

library(devtools)
install_github("martinkabe/RSQLS")
library(RSQLS)

cs <- set_connString("LAPTOP-USER\\SQLEXPRESS", "Database_Name")
push_data(cs, dataFrame, "dbo.TableName", append = TRUE, showprogress = TRUE)
df <- pull_data(cs, "SELECT * FROM dbo.TableName", showprogress = TRUE)

此解决方案比RODBC::sqlSaveDBI::dbWriteTable更快、更健壮。

于 2018-02-09T18:24:05.130 回答
0

首先,您必须创建/配置 DSN(与特定 DB 的 ODBC 连接)

然后安装RODBC库。

library(RODBC)
myconn <-odbcConnect("MyDSN", uid="***", pwd="*******")

fetchData<- sqlQuery(myconn, "select * from tableName")
View(fetchData)
close(myconn)
于 2017-06-14T06:45:26.033 回答