2013-05-13 61 views
0

MySQL數據庫如果我有像序列數據:序列化對象中的R

> a <- 1:5 
> a 
[1] 1 2 3 4 5 
> b <- serialize(a,NULL) 
> b 
[1] 58 0a 00 00 00 02 00 02 0f 02 00 02 03 00 00 00 00 0d 00 00 00 05 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00 05 
> b[1] 
[1] 58 
> b[8] 
[1] 02 

我怎樣才能把那個序列化數據到MySQL表?我還有其他信息。我讀到它可以做成blob,但我不知道它是如何工作的。我正在使用RMySQL。我曾嘗試:

dbGetQuery(con, "INSERT INTO table(",b," info, moreInfo, otherStuff, more, date)") 

,但它不會工作。

如果我使用

query <- paste ("INSERT INTO table(",b," info, moreInfo, otherStuff, more, date)") 
dbGetQuery(con,query) 

它仍然是行不通的。

+0

我想你可能需要使用'dbWriteTable'。 – joran 2013-05-13 21:09:53

+0

我已經在表格中插入數據了。 – TheLaama 2013-05-13 21:37:26

+1

是的,我想你是。通常在'dbWriteTable'中指定'append = TRUE'來插入。 – joran 2013-05-13 21:49:27

回答

0

試試這個:

library(RODBC) 
dt=data.table(a=sample(10),b=sample(10)*10) 
sqlSave(con, dt, tablename='sampletablename') # overwrites existing sampletablename table 
sqlSave(con, dt, tablename='sampletablename', append=TRUE) # append instead of overwrite 
+0

但是是否有可能將該序列化數據作爲一個對象放到mysql中。所以每一行都會有一個序列化的數據與其他的東西 – TheLaama 2013-05-14 07:12:03