RMySQL,dbWriteTable和包含换行符的文本字段

时间:2013-02-06 21:06:29

标签: mysql r text rmysql

我有一个R例程,需要将文本从第三方写入MySQL数据库。该文本通常包含换行符。

不幸的是,

foobar <- as.data.frame(a=1, b='\n')
dbWriteTable(MySQL(), foobar, 'test')

创建一个包含两个记录的表格; '\ n'生成记录中断和空记录。

有关RMySQL的特别之处吗?这是一个众所周知的问题吗?我环顾四周,我没见过有人讨论过。有没有使用不同连接器的解决方法?

2 个答案:

答案 0 :(得分:1)

con <- dbConnect(MySQL(), user='user', password='password')

foobar <- as.data.frame(a=1, b='\n')
foobar$b <- dbEscapeStrings(con, foobar$b)
dbWriteTable(con, foobar, 'test')

答案 1 :(得分:0)

事实证明,这实际上很容易解决。

在DBI界面中有一个名为dbEscapeStrings的函数。它将字符串转换为一种形式,在这种形式中,它们将以数据库和区域设置敏感的方式正确存储。如果在通过间隙传递字符串之前将其转换为这种方式,那么它们就会正确存储在表格中。