【发布时间】:2015-02-12 19:29:47
【问题描述】:
我正在尝试使用 RODBC 包中的 sqlSave 写入 msaccess 数据库。我打开与数据库的连接没有问题。我可以从表格中阅读。我什至可以使用 sqlSave 进行某些简单的更新,但是对于下表和以下更新,R 前端会崩溃。当我从带有真实计算数据的 Rscript 运行它时,以及在我运行以下命令时从 Rstudio 运行它时,都会发生这种情况。我在 32 位模式下运行 R 3.1(为了与访问兼容)。
我创建了一个通道“ch”,我打算在名为“data.mdb”的数据库中写入一个名为“Test_Table”的表
test <- c(1,"Fixed","Upward","Gas", "2014-07-31",14,0.99)
test.df <- as.data.frame(t(test))
names(test.df) <- c("ID","Contract_Type","Direction", "Name_Of_Underlying","Data_Date","Months_To_Maturity","Absolute_Price_Move")
types <- c("integer","varchar","varchar","varchar","datetime","integer","double")
names(types) <- names(test.df)
sqlSave(ch, dat = test.df, tablename = "Test_Table",varTypes = types, append = T, verbose = T,safer = T)
我也尝试过使用更安全的 = F。
当我在 RStudio 中运行它时,我得到了“炸弹”标志,并被要求开始一个新会话。当我通过 Rscript 运行时,命令行输出表明正在发生所有正确的绑定并且参数是正确的。然后会弹出一个窗口,提示 R for Windows 前端已停止工作,并且没有向数据库写入任何内容。
欢迎任何想法。
【问题讨论】:
-
当我在 Visual Studio 中调试 Rscript 时,我收到以下错误:Rscript.exe 中 0x6C72A6E4 (R.dll) 处的未处理异常:0xC0000005:访问冲突读取位置 0x00000000。
-
只是更多信息,如果我删除日期时间字段,此保存工作。当我将日期时间字符串转换为 POSIX 时,它也会崩溃。
-
我使用 INSERT INTO 语句和 sqlQuery 让它工作,但我仍然很想知道如何让 sqlSave 做到这一点。
-
我遇到了同样的问题,它也使 R 控制台崩溃