R 数据帧中值的最大长度,RODBC

Maximum Length of Value in R Data Frame, RODBC

我正在尝试使用 R 中的 RODBC 包对 DB2 数据库进行简单查询 (myQuery<-sqlQuery(channel,paste0("..."))) 其中一列是长度为 Varchar 3000. 结果数据框在应该有文本的列中显示 "NA"。将它导出到 csv 也只显示 "NA"。 Access 中的查询显示奇怪的字符编码(仅在单击单元格后)。 R 数据帧中值的最大长度或可以使用 RODBC 提取的字段的最大长度?或者是导致 "NA" 出现的字段编码?

我对 DB2 (LUW 9.7) 和 R (3.2.2 Windows) 进行了端到端测试,对我来说效果很好。

SQL代码:

create table test (foo varchar(3000));

--actual insert is 3000 chars
insert into test values ('aaaaaa .... a'); 

--this select worked fine in my normal SQL client
select * from test

R代码:

long = sqlQuery(connection, "select * from test");

#Displays the 3000 character value.
long;

我猜问题出在其他原因,而不仅仅是字段的大小:

  • 字符编码问题。如果您在 Access 中看到一些有趣的东西,可能是该字段的内容在 R 使用的字符编码中是不可接受的,因此它被丢弃了。 (我对 R 中的字符编码特别不熟悉,但这通常是软件开发的一个棘手问题)。
  • 结果的总体大小。也许问题是由于行的总长度而不是单个字段的长度。查询是否还返回许多其他内容?您是否尝试过仅对此字段进行简单测试?
  • 其他版本的问题。可能你用的版本和我用的不一样,你的版本确实有问题。如果您这么认为,请使用更多信息更新您的问题。