【发布时间】:2013-10-13 10:25:09
【问题描述】:
在我设置 MonetDB 并尝试在默认数据库(演示)中写入一个大的 data.frame 作为新表后,我收到了错误:
>dbWriteTable(conn, "table1", df)
Error in .local(conn, statement, ...) :
Unable to execute statement 'INSERT INTO table1 VALUES([...])
data.frame 有维度:
>dim(df)
[1] 148767 618
并将所有列格式化为字符:
>all(lapply(df,class)=='character')
[1] TRUE
错误似乎源于字符串值太长(感谢@Hannes Mühleisen):
>dbGetException(conn)
$errNum
[1] 22001
$errMsg
[1] "value too long for type (var)char(255)"
MonetDB 如何设置新 (VAR)CHAR 变量的上限(我在文档中没有找到有关上限的任何信息)?在通过 MonetDB.R 从 R 创建表时,是否可以设置全局上限或交互设置上限?
【问题讨论】:
-
嗨,
MonetDBLite(在 CRAN 上)现在替换MonetDB.R并嵌入运行(如RSQLite)。更多详情,请参阅github.com/hannesmuehleisen/MonetDBLite/blob/master/README.md