使用R,如何在SQL Server数据库上获取“dbo”参数?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用R,如何在SQL Server数据库上获取“dbo”参数?相关的知识,希望对你有一定的参考价值。

我有一个西班牙语的SQL Server数据库,我想从SELECT * table.name获取结果

为此,我使用odbc库将R连接到数据库。

在那之后,我这样做:

dbSendQuery(con,"SELECT * FROM [database].[dbo].[table.name]")

这给我一个错误:std :: bad_alloc

但如果我这样做:

dbSendQuery(con,"SELECT Id FROM [database].[dbo].[table.name]")

然后我取得了不错的成绩

我已经看到,只有当查询中涉及varchar类型的列名时,才会显示错误,所以我认为架构可能是这个问题的原因。

我该怎么办才能没有这个错误?架构是“dbo”

谢谢!

答案

不知道你的客户端环境是什么,我在ODBC + R + Linux + Sybase方面遇到了类似的问题。我能够查询数字列而不是字符列,接收相同的std::bad_alloc错误。你的Id字段可能是一个数字,而SELECT *正在拉入其他具有字符数据类型的列。

对我来说,解决方案是确保我使用的是支持8字节SQLLEN数据类型的ODBC驱动程序。在Linux上运行命令odbcinst -j向我显示我在RHEL Server 7.5 64位上运行的已安装的unixODBC版本2.3.1的SQLLEN大小为8。

默认情况下,Sybase驱动程序符号链接为4字节版本。按照下面的说明,我确保我链接到8字节版本,我的问题解决了。奇怪的是,在通过isql发出命令时,我从未遇到过这些问题。也许您的SQL Server驱动程序可能会以相同的方式受到影响。

http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc20155.1600/doc/html/san1361915533650.html

在一个相关的GitHub问题中也发布了这个问题:https://github.com/r-dbi/odbc/issues/174#issuecomment-403106647

以上是关于使用R,如何在SQL Server数据库上获取“dbo”参数?的主要内容,如果未能解决你的问题,请参考以下文章

如何在sql server中获取前一行数据

获取 MS SQL Server 2008 的连接字符串

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

SQL 获取第一个匹配结果

如何获取SQL server数据库的连接字符串

如何在 SQL Server 上获取“受限文件增长”参数?