![](/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.