1

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 からテーブルを作成するときに、グローバルな上限を設定できますか、または上限を対話的に設定できますか?

4

1 に答える 1