我正在尝试将一些数据从SQL数据库直接导入到R中。我已经建立了连接而没有问题但是提取数据有点挑战性。我会尝试尽可能清楚地说明这一点,因为我认为由于某些敏感信息我无法使其重现。当我运行以下行时,我得到了我想要的数据:
myconn <- odbcConnect("COMPANYNAME", uid = "support", pwd = "password111?")
sqlQuery(myconn, "SELECT * FROM Metrics")
但是,当我想要从服务器中提取特定数据库时,我遇到了一个问题:
sqlQuery(myconn, "USE companyname_clientname SELECT * FROM Metrics")
其中companyname_clientname是数据库。而不是我想要的数据,我得到了
character(0)
我知道引入“USE companyname_clientname”是个问题,我只是不知道为什么或如何解决它。如果有任何事情可以让你更容易帮我告诉我,我会接受。
答案 0 :(得分:10)
如果其他人遇到此问题,character(0)
也可能是SQL中警告的结果,例如
Warning: Null value is eliminated by an aggregate or other SET operation.
可以通过在SQL脚本的顶部包含SET ANSI_WARNINGS OFF
来解决此问题。
答案 1 :(得分:8)
我遇到了同样的问题,发现有两个原因:
希望这有助于其他人!
答案 2 :(得分:5)
我有同样的问题。 character(0)
似乎是由于RODBC没有完成的SQL使用循环的结果。
使我正确的解决方案是将set nocount on
添加到SQL语句的开头。如果它是同一个问题,它应该可以解决问题。