[英]How do I connect to an SQL server database in R
我正在尝试使用R连接到SQL Sever数据库,但不确定查询字符串的详细信息。 我通常在SQL Server 2008上使用SQL server management studio并使用单点登录连接。 我找到了下面的例子
myconn <- odbcDriverConnect(connection="Driver={SQL Server
Native Client 11.0};server=hostname;database=TPCH;
trusted_connection=yes;")
我收到以下警告信息
Warning messages:
1: In odbcDriverConnect(connection = "Driver={SQL Server \nNative Client 11.0};server=hostname;database=TPCH;\ntrusted_connection=yes;") :
[RODBC] ERROR: state IM002, code 0, message [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
2: In odbcDriverConnect(connection = "Driver={SQL Server \nNative Client 11.0};server=hostname;database=TPCH;\ntrusted_connection=yes;") :
ODBC connection failed
我如何找到我需要的细节?
我过去已经用odbc命名连接做了这个,我已经有了。 如果您不知道,可以通过在搜索提示“odbc”中键入并选择“设置数据源”来在Windows中创建一个。 例如 - 如果您将odbc连接命名为'con1',则可以通过以下方式连接:
con<-odbcConnect('con1') #opening odbc connection
df<-sqlQuery(con, "select *
from ssiD.dbo.HOURLY_SALES
") #querying table
close(con)
这适合我。
library(RODBC)
dbconnection <- odbcDriverConnect("Driver=ODBC Driver 11 for SQL Server;Server=server_name; Database=table_name;Uid=; Pwd=; trusted_connection=yes")
initdata <- sqlQuery(dbconnection,paste("select * from MyTable;"))
odbcClose(channel)
另外,请参阅这些链接。 RODBC odbcDriverConnect()连接错误
https://www.simple-talk.com/sql/reporting-services/making-data-analytics-simpler-sql-server-and-r/
问题比这简单。 最大的线索是错误消息中的\\n
。 有些东西重新连接了你的连接字符串,现在驱动程序名称中有一个换行符。 这与任何注册的驱动程序名称都不匹配。 然后疼痛和痛苦随之而来。 确保整个连接字符串在一行上!
我经常使用: driver={SQL Server Native Client 11.0}; ...
driver={SQL Server Native Client 11.0}; ...
而且效果很好。 比依赖预定义的连接名称要好得多。
首先,您需要安装软件包“RSQLServer”及其所有依赖项。 然后在RStudio中执行以下命令,并带有相关参数:
conn <- DBI::dbConnect(RSQLServer::SQLServer(),
server = '<server>',
port = '<port>',
properties = list(
user = '<user>',
password = '<password>'
))
最后, db_list_tables(conn)
为您提供相应数据库中的表列表。
尝试其他ODBC驱动程序。 在Windows中按“窗口”按钮,然后键入“odbc”。 单击“数据源(ODBC)”链接。 转到“驱动程序”选项卡以查看SQL Server的可用驱动程序。 另外 - 删除连接字符串中分号后面的“”空格。 注 - 数据库属性应指向数据库名称而不是表名。
这对我有用:
odbcDriverConnect("Driver=SQL Server Native Client 11.0;Server=<IP of server>;Database=<Database Name>;Uid=<SQL username>;Pwd=<SQL password>")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.