Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
RODBC连接-有限行_R_Odbc_Netezza - Fatal编程技术网

RODBC连接-有限行

RODBC连接-有限行,r,odbc,netezza,R,Odbc,Netezza,我设置了一个ODBC连接到Netezza(SQL数据库)。连接良好。但是,默认情况下,R仅提取256行,并限制其可以提取的行数 如果我在Netezza中运行查询,它将返回总行数(300k)。我希望R中的行数相同。但是,它只返回256行,比300k少了一点 我使用的驱动程序是NetezzaSQL版本7.00.02 NSQLDBC.DLL 我试图将“驱动程序选项”中的预取计数从更改为零 控制面板>管理工具>数据源(OBBC)>系统DNS 它不起作用。有什么想法吗?我认为RODBC与Netezza的配

我设置了一个ODBC连接到Netezza(SQL数据库)。连接良好。但是,默认情况下,R仅提取256行,并限制其可以提取的行数

如果我在Netezza中运行查询,它将返回总行数(300k)。我希望R中的行数相同。但是,它只返回256行,比300k少了一点

我使用的驱动程序是NetezzaSQL版本7.00.02 NSQLDBC.DLL

我试图将“驱动程序选项”中的预取计数从更改为零 控制面板>管理工具>数据源(OBBC)>系统DNS


它不起作用。有什么想法吗?

我认为RODBC与Netezza的配合很差。一个解决方案

只需将
believeNRows=FALSE
添加到
sqlQuery
odbcConnect
调用中(如果同时使用
sqlFetch
,请使用后者)。您还可以尝试使用驱动程序:

库(RJDBC)

drv我知道这有点过时,但问题不在于RODBC软件包。问题在于如何设置ODBC连接。如果在windows中配置连接,您将在“设置”中看到最后一个选项卡,您可以在其中指定它将获取的行数。默认值为256。

您需要多少行?以及您正在使用的h ODBC连接库?全尺寸(300k)。我想你指的是ODBC数据源管理员>系统DSN和什么类型的驱动程序?我不确定你指的是什么…当我通过RODBC连接到Oracle时,系统DSN通过Oracle驱动程序连接。这是Windows用来管理连接的DLL。Alex,我在Mac上使用nzjdbc.jar尝试过这种方法,但仍然得到256行返回。有什么想法吗?@FrankP.,256是驱动程序预取缓冲区的默认长度。您是否使用
fetch(res,n=-1)
下载了数据?-1将强制检索所有记录。当我提取(res,n=-1)时,我仍然获得256行。如果我提取(res,n=10)然后提取(res,n=-1)然后我首先得到10行,然后是246行。因此,查询似乎只包含256行。如果您将SQL查询更改为显式添加上限RJDBC::dbGetQuery(conn,“select*from mytable limit 2147483647”),这对我来说很有效。正确,只需将参数添加到查询中,例如
results=sqlQuery(dbhandle,“从表格中选择*,believeNRows=FALSE)
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")