使用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驱动程序可能会以相同的方式受到影响。
在一个相关的GitHub问题中也发布了这个问题:https://github.com/r-dbi/odbc/issues/174#issuecomment-403106647
以上是关于使用R,如何在SQL Server数据库上获取“dbo”参数?的主要内容,如果未能解决你的问题,请参考以下文章