从我的32位Windows(Vista)笔记本电脑中,我需要R在另一台计算机上(通过互联网)在64位Windows(Server 2008)上查询MS SQL Server 2008数据库。错误的查询结果与R
如果我使用SQL Server工作室在我的笔记本电脑连接到数据库,并发出此查询:
SELECT * from mytable where id = 1111111111111110032
我得到的回应
ID,.....
1111111111111110032,... ..
这是正确的。我得到了我要求的记录。
但如果我写这篇文章的R:
library(RODBC)
My_conn <- odbcConnect("myODBC_connection", uid="abc123", pwd="abc123")
tbl_Calls <- sqlQuery(My_conn, "SELECT * from mytable where id = 1111111111111110032")
我得到的回应
ID,.....
1111111111111110128,.....
换句话说,我获得另一个记录比我所要求的(一个以...... 128而不是...... 032结尾)。我知道这不是查询本身,而是SQL Studio的工作原理。
我不知道什么可能是错的。是32位和64位的问题?在我的ODBC连接中,我使用“SQL Server”(6.00.6002.18005)。
这可能不是一个R问题,但我不知道从哪里开始......也许是因为ID是19位数字?
/Chris
你试图测试其他查询,以确定它是否是有问题的时候,或者所有的查询,这个特定的查询?只是在这里大声想... FWIW我使用一个32位的Windows机器,每天连接到64位服务器没有麻烦。 – Chase 2011-05-01 03:13:01
感谢您的建议,我再次尝试,现在我认为它与WHERE标准中的字符数(111 ... 032,即19个字符)有关。我做了ODBC跟踪,虽然我不明白,但确实得到“-3,无效的字符串长度”。但如何解决它? – Chris 2011-05-01 17:07:32