【发布时间】:2020-06-24 05:02:19
【问题描述】:
RODBC:sqlsave 默认写入一个只有 char 列的 data.frame 作为varchar(255) 并截断其余部分。 DF 中的 var 实际上长度接近 4000 个字符。
我试过了:
sqlQuery(db,'CREATE TABLE SCUBA_tweetsC8 (user_id``` varchar(max),
status_id varchar(max),
screen_name varchar(max),
text varchar(max),
source varchar(max),
reply_to_status_id varchar(max),
reply_to_user_id varchar(max),
reply_to_screen_name varchar(max),
ext_media_type varchar(max),
lang varchar(max),
quoted_status_id varchar(max),
quoted_text varchar(max),
quoted_source varchar(max),
quoted_user_id varchar(max),
quoted_screen_name varchar(max),
quoted_name varchar(max),
quoted_location varchar(max),
quoted_description varchar(max),
retweet_status_id varchar(max),
retweet_text varchar(max),
retweet_source varchar(max),
retweet_user_id varchar(max),
retweet_screen_name varchar(max),
retweet_name varchar(max),
retweet_location varchar(max),
retweet_description varchar(max),
place_url varchar(max),
place_name varchar(max),
place_full_name varchar(max),
place_type varchar(max),
country varchar(max),
country_code varchar(max),
status_url varchar(max),
name varchar(max),
location varchar(max),
description varchar(max),
url varchar(max),
profile_url varchar(max),
profile_expanded_url varchar(max),
profile_banner_url varchar(max),
profile_background_url varchar(max),
profile_image_url varchar(max),);')
sqlSave(db,SCUBA_tweetsC,"SCUBA_tweetsC8",append = T)
但我收到以下错误:
odbcUpdate 中的错误(通道、查询、mydata、coldata[m、]、test = test、:'Calloc' 无法分配内存(18446744071562067968,共 1 个字节)
我已尽我所能尝试其他建议,例如尝试使用 VarType 函数但没有成功。
【问题讨论】:
-
您的问题与此问题重复:stackoverflow.com/questions/39129895/…。搜索“odbcUpdate 中的错误(通道、查询、mydata、coldata[m, ]、test = test, : 'Calloc' 无法分配内存(18446744071562067968 of 1 bytes)”时的最佳 Google 结果
-
Alex,它实际上只能是一个带有答案的副本,接受或其他方式(尽管“接受”是更可取的),而 cmets 最好的做法是建议使用另一个包。
-
@r2evans - 谷歌搜索此错误返回 GitLab 问题(第二个链接),尚未解决......我怀疑我们可以在这里提供帮助。
-
Axex,我同意(尽管 github 是我的第一个链接)。艾伦……不过,我不知道你会在这里得到更好的建议,因为我不知道自上一个问题以来发生了多大的变化。我成功地使用了
DBI和odbc(包括相当大的nvarchar(max)字段),也许这是您调查的途径。否则,正如 joran 在one of the comments by Alex's linked question 中提到的,也许是 r-sig-db 邮件,不过我没有这方面的经验。 -
感谢您的信息。我想我会问一个希望有人有一个可行的选择。 @r2evans,你能发布一个例子吗?我一直在使用 DBI 和 ODBC,并且还收到了截断错误,并且不会将任何内容写入 SQL 表。
标签: r sql-server