繁体   English   中英

如何连接到R中的SQL Server数据库

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM