[R-sig-DB] Saving R-objects to a database

Christian Ruckert cruckert @end|ng |rom un|-muen@ter@de
Wed Oct 1 12:42:52 CEST 2008


>> Someone solved the problem of saving R-objects to a database or can give me
>> an answer like "this is not possible at the moment"?
>>
>> All my attempts runned into problems with conversion between blob, raw and
>> character representations. Saving the R-object to a file and then getting it
>> into the db leads to similar problems. Is saving to the file system the only
>> practicable solution?
> 
> Look at the serialize function.  You can serialize any R object which
> can be stored into the database of your choice.  Give that a try and
> let us know with a code example if you have problems.

This is what I posted on r-mailing list before:

 > ser = serialize(obj, NULL)
 > dbSendQuery(link, paste("insert into table values(1, '",ser,"')",sep=''))
 >
 > The field to save the object in the MySQL Database is of type blob.
 >
 > result = dbGetQuery(link,"select * from table where id=1")
 >
 > unser = unserialize(result[1,"object_column"], NULL)
 > Error in unserialize(result[1, "object_column"], NULL) : unknown 
input format
 > In addition: Warning message:
 > In unserialize(result[1, "object_column"], NULL) :
 >  unserialize()from a character string is deprecated and will be 
withdrawn in R 2.8.0

Brian Ripley answered:
"DBI needs to convert blobs to raw not character."

So saving to the db works fine, but function dbGetQuery seems to convert 
the result to a character string. Can I avoid this convertion or is this 
a problem with DBI package and will it get fixed?




More information about the R-sig-DB mailing list