【发布时间】: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