【问题标题】:Import dataframe from SQL Server into R将数据框从 SQL Server 导入 R
【发布时间】:2018-04-04 13:58:33
【问题描述】:

我有一个有效的 R 脚本。现在,我将 SQL 服务器中的数据提取到 Excel 工作表中,并将此 Excel 工作表导入 R。 我想直接从 SQL Server 导入。 我拥有的数据:

  • DNS
  • 数据库
  • 登录
  • 密码

这足以从这个 SQL Server 中提取数据库吗?

【问题讨论】:

    标签: r sql-server


    【解决方案1】:

    我觉得够了。您可以从 RODBC 库中受益,如下所示:

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

    参考:SQL Server RODBC Connection

    编辑:对于您的情况,您可以尝试:

    library(RODBC)
    dbhandle <- odbcDriverConnect('driver={SQL 
    Server};server=mysqlhost;database=mydbname;uid=yourusername;pwd=yourpassword')
    res <- sqlQuery(dbhandle, 'select * from information_schema.tables')
    

    参考:https://blog.learningtree.com/querying-sql-server-data-from-r-using-rodbc/

    【讨论】:

    • dbhandle 给出错误:Error: State 08001, code 17, message [Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL-server doesn't exist or access is denied.
    • 确保您提供正确的服务器和数据库名称,并且您有权访问数据库和表
    • dbhandle &lt;- odbcDriverConnect('driver={SQL Server};server=DNS;database=DBNAME;trusted_connection=true') 是我在控制台中的条目。但是我在哪里提供登录名和密码?
    • @George ... trusted_connection 应该替换用户/密码。此外,DSN(不是 DNS)不是替换服务器,而是替换驱动程序。事实上,DSN 可以包含服务器/数据库/用户信息。因此,您将使用:odbcConnect('DSN')。这样可以避免在代码中暴露数据库凭据和规范。
    • 那么我应该用什么替换驱动程序?
    猜你喜欢
    • 2020-12-04
    • 2022-06-11
    • 1970-01-01
    • 2015-01-02
    • 2015-08-26
    • 2012-03-11
    • 2014-11-08
    • 1970-01-01
    相关资源
    最近更新 更多