我设置了一个ODBC连接到Netezza(SQL数据库)。连接很好。但是,R默认只拉出256行,并限制它可以拉出的行数。
如果我在Netezza中运行查询,它将返回总行数(300k)。我期待R中的行数相同。但是,它只返回256行,相差300k。
我正在使用NetezzaSQL版本7.00.02 NSQLODBC.DLL
的驱动程序我尝试在“驱动程序选项”中将预取计数更改为零 控制面板>管理工具>数据源(OBBC)>系统DNS
它不起作用。有什么想法吗?
答案 0 :(得分:7)
我认为RODBC对Netezza表现不佳。解决方案http://datamining.togaware.com/survivor/Database_Connection.html
只需将believeNRows=FALSE
添加到您的sqlQuery
或odbcConnect
电话中(如果您还使用sqlFetch
,请使用更晚的电话。
答案 1 :(得分:2)
您也可以尝试使用JDBC驱动程序:
library(RJDBC)
drv <- JDBC("org.netezza.Driver", "nzjdbc.jar", "'")
conn <- dbConnect(drv, "jdbc:netezza://host:5480/database", "user", "password")
res <- dbSendQuery(conn, "select * from mytable")
这样你就不用处理DSN等了。
答案 2 :(得分:0)
我知道这有点过时但问题不在于RODBC包。问题在于如何在Windows中配置连接时设置ODBC连接,您将在设置中看到最后一个选项卡,您可以在其中指定要获取的行数。默认值为256。