Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Windows 7 x64上,RMySQL dbWriteTable在文件路径方面遇到问题 背景_R_Rmysql - Fatal编程技术网

在Windows 7 x64上,RMySQL dbWriteTable在文件路径方面遇到问题 背景

在Windows 7 x64上,RMySQL dbWriteTable在文件路径方面遇到问题 背景,r,rmysql,R,Rmysql,我运行了一个MariaDB 5.5的本地实例,在那里我创建了一个包含两个表的数据库。我必须用存储在几千个.RData文件中的数据填充这些表。每个文件存储的data.frames的行数在几千到一百万之间 使用RMySQL和函数dbWriteTable似乎是最简单的解决方案。我使用RevolutionR的3.1.1版本(8.0测试版)。操作系统为Win7 x64 MariaDB中的表有两列:ID和VALUE,其名称为TAB。要存储的数据位于对象data.tab中 我做什么 我的发言如下: data.

我运行了一个MariaDB 5.5的本地实例,在那里我创建了一个包含两个表的数据库。我必须用存储在几千个
.RData
文件中的数据填充这些表。每个文件存储的
data.frames
的行数在几千到一百万之间

使用
RMySQL
和函数
dbWriteTable
似乎是最简单的解决方案。我使用RevolutionR的3.1.1版本(8.0测试版)。操作系统为Win7 x64

MariaDB中的表有两列:
ID
VALUE
,其名称为
TAB
。要存储的数据位于对象
data.tab

我做什么 我的发言如下:

data.tab <- data.frame(ID = c(1:3), VAL = c(7:9))
db.con <- dbConnect(drv = MySQL(), user = "root", password = "myPasswrd", dbname="myDBname")
dbWriteTable(conn = db.con, name = "TAB", value = data.tab, append=TRUE, row.names=FALSE, field.types=character(ID="INT",VAL="FLOAT"))
问题 调用上述代码段中的第二行会引发以下错误:

Error in .local(conn, statement, ...) : 
sdbi114c7f07039' not found (Errcode: 22)tempRtmpE9YwdP
调用第三行(通过临时csv文件)会导致类似的错误,即路径打印时去掉反斜杠。这与路径扩展有关。调试和打印
语句
产生:

“将数据本地填充'C:\\TEMP\\rtmp\\RtmpE9YwdP\\rsdbi114c7f07039'加载到以“\n”结尾的表
选项卡
行中(
ID
VALUE

因此,反斜杠(
\\
)和
\r
的逃逸似乎是问题所在。不幸的是,我不知道如何处理这件事

回溯(按呼叫顺序):

编辑
如果在
语句
的步骤11的交互式调试器中,我将
\\
替换为路径中的
/
,则数据将正确写入数据库。

似乎是RMySQL中的问题。我修复了该问题,并在GitHub上提交了一个拉取请求:

对我来说,它现在可以在我的电脑上工作了。您可以编译和安装,或者等到CRAN上发布新版本的软件包


编辑:它现在在CRAN上,版本0.10.1

这里有同样的问题。标准R 3.1.2和RMySQL 0.10
Error in .local(conn, statement, ...) : 
sdbi114c7f07039' not found (Errcode: 22)tempRtmpE9YwdP
1: dbWriteTable(conn = db.con, name = "t_ftr", value = fut.tbl, append = TRUE, row.names = FALSE,
2: .valueClassTest({standardGeneric("dbWriteTable")}, "logical", "dbWriteTable")
3: is(object, Cl)
4: is(object, Cl)
5: .local(conn, name, value, ...)
6: dbGetQuery(conn, sql)
7: dbGetQuery(conn, sql)
8: dbSendQuery(conn, statement, ...)
9: .valueClassTest(standardGeneric("dbSendQuery"), "DBIResult", "dbSendQuery")
10: is(object, Cl)
11: is(object, Cl)
12: .local(conn, statement, ...)
13: .Call(RS_MySQL_exec, conn@Id, as.character(statement))