2011-04-19 110 views
51

有沒有人有使用RODBC並連接到MS SQL Server 2005或2008的連接字符串示例。SQL Server RODBC連接

謝謝。

+7

大多數連接字符串問題可以在[connectionstrings.com](http://connectionstrings.com/)回答 – 2011-04-19 18:00:17

回答

86
library(RODBC) 
dbhandle <- odbcDriverConnect('driver={SQL Server};server=mysqlhost;database=mydbname;trusted_connection=true') 
res <- sqlQuery(dbhandle, 'select * from information_schema.tables') 
+1

我正在嘗試這個,但我得到錯誤「SQL Server不存在或訪問被拒絕。」你必須輸入用戶名/密碼嗎?此外,我在我的遠程站點上有一個dsn,但似乎沒有提到。 RODBC文檔對我來說並不清楚 – pssguy 2012-11-19 21:45:15

+3

該示例使用選項「trusted_connection = true」進行自動Windows身份驗證。您還可以在連接字符串中提供username = ...和password = ...作爲參數。 – Henrico 2012-12-07 20:21:15

+12

實際上對我來說'username'和'password'不起作用 - 我必須提供參數'uid = ...;'和'pwd = ...;'。 – Seb 2013-08-30 11:00:16

8

a posting to 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) 
+0

你會如何從Mac OSX做到這一點?同樣的方式?這是可能的,與Windows登錄要求? – mikebmassey 2012-01-28 21:24:32

+0

似乎不太可能,這將在Mac上使用與MS的SQL Server相同的機器,但也可能採用某種遠程訪問終端安排。 – 2013-11-19 16:39:19

+0

如何將這個命令寫入linux上工作? – 2015-11-12 22:37:38

0

首先,你必須創建/配置DSN(具體DB ODBC連接)

然後安裝RODBC庫。

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

fetchData<- sqlQuery(myconn, "select * from tableName") 
View(fetchData) 
close(myconn) 
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更快更穩健。