【问题标题】:Problems Connecting to MS SQL Server Through R DBI Package通过 R DBI 包连接到 MS SQL Server 的问题
【发布时间】:2020-01-27 20:41:32
【问题描述】:

我正在尝试使用 Mac 设置与 SQL Server 的连接 Microsoft OBDC 驱动程序和 DBI 包。

连接建立,但是字符字段,即使是那些没有特殊字符的字段,返回乱码。该数据库是专有的,因此我可以显示的实际输出受到限制。数值字段返回正常。

其他一些注释。

  • 如果我提交查询,我可以使用正确的表接收记录集。例如下面的查询返回结果,并且列名是正确的。列数据乱码
> dbGetquery(con, "Select name from tb1", n = 1)
Warning: Pending rows
              name
1     CalteMtrSeda

  • dbListTables() 也返回乱码输出,即使如上所示,我可以从按名称引用它的表中接收输出。
    • dbListTables() 返回正确数量的表,但名称难以理解。
grep("tb1", dbListTables(con), value = TRUE)
character(0)
  • 我的con 对象的输出
> con
<OdbcConnection> user@ExpectedDataBase
  Database: NameIWouldExpect
  Microsoft SQL Server Version: 13.00.1742

** 更新为包含模式。

我将返回所有其他角色。从上面的例子。 CalteMtrSeda == CharlotteMotorSpeedway

这是我第一次尝试从 Mac 连接到这个数据库。

【问题讨论】:

  • Garbled 通常意味着 varchar 字段用于存储非英语文本而不是 nvarchar 并且尝试读取数据的程序(您的程序)使用与写入数据的程序。您必须发布表架构示例、示例数据以及返回的内容
  • proprietary database 都是。这并不意味着您不能发布示例。您可以创建具有相似架构、相似数据的 new 数据库并发布它们。事实上,创建一个新的、简单的数据库是一种很好的故障排除方法,因为它可以让您隔离导致问题的部分。
  • 最后,尝试使用 SSMS(仅限 Windows)或 Azure Data Studio(尽管名称不同,但它是一个跨平台的数据库 IDE)读取数据。数据是什么样的?
  • 第一次检查。在 Azure Data Studio 中,数据看起来不错。表名或任何字段都没有问题。

标签: r sql-server macos dbi


【解决方案1】:

原来与R3.6有关。恢复到 R3.5 解决了这个问题。链接到odbc repo中的相关问题

https://github.com/r-dbi/odbc/issues/283

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-20
    • 2021-06-12
    • 1970-01-01
    • 2020-11-03
    • 2016-03-19
    • 2022-10-25
    相关资源
    最近更新 更多