![](/img/trans.png)
[英]Issue (bug?) with MonetDB.R and dbWriteTable with csvdump=TRUE
[英]MonetDB does not accept BOOLEANs from dbWriteTable (csvdump = T)
将布尔数据附加到现有表时,得到以下信息。
> dbWriteTable(conn,“ myTable”,myData,覆盖= F,附加= T,csvdump = T)
.local(conn,statement,...)中的错误:无法从“ C:\\ Path \\ to \\ AppData \\ Local \\ Temp \\ Rtmp80mc5L \\ file3e24401f42a.cs ...”执行语句“将1292记录记录到myTable中”。
服务器在未插入第1行第20行的字段中说'!value'TRUE',期望类型为boolean'。
我已经处理了与此连接器有关的一些代码:
> tmp <-tempfile(fileext =“ .csv”)
> write.table(myData,tmp,sep =“,”,quote = TRUE,row.names = FALSE,col.names = FALSE,na =“”)
> tmp
[1]“ C:\\ Path \\ to \\ AppData \\ Local \\ Temp \\ Rtmp80mc5L \\ file3e24401f42a.csv”
当将TRUE更改为1并将FALSE更改为0并运行以下SQL代码时:
COPY 1292将记录从'C:\\ Path \\ to \\ AppData \\ Local \\ Temp \\ Rtmp80mc5L \\ file3e24401f42a.csv'使用DELIMITER',','\\ n','“'NULL AS''LOCKED;
然后插入所有数据。
似乎需要转换布尔列。 同时,它是否可以与csvdump = F一起使用?
创建表TABLE1(
INFO VARCHAR(5),
安全布尔
);
创建表TABLE2(
INFO VARCHAR(5),
安全布尔
);
插入到TABLE1(INFO,SECURE)值('FALSE',FALSE)中;
插入TABLE1(INFO,SECURE)值('TRUE',TRUE);
>库(MonetDB.R)
> conn <-dbConnect(MonetDB.R(),“ monetdb:// localhost / demo”)
> myData <-dbGetQuery(conn,“从表1选择*”)
> dput(myData)
结构(list(info = c(“ FALSE”,“ TRUE”),secure = c(FALSE,TRUE)),.Names = c(“ info”,“ secure”),row.names = c(NA,2L ),类=“ data.frame”)
> dbWriteTable(conn,“ table2”,myData,覆盖= F,附加= T,csvdump = F)
[1]是
> dbWriteTable(conn,“ table2”,myData,覆盖= F,附加= T,csvdump = T)
.local(conn,statement,...)中的错误:无法从'C:\\ Path \\ to \\ AppData \\ Local \\ Temp \\ Rtmp80mc5L \\ file3e241533d14.csv'US ...'执行语句'COPY 2 RECORDS INTO table2 。
服务器说未插入第3行第2行的'!value'FALSE',期望类型为boolean'。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.