【发布时间】:2015-03-11 16:51:52
【问题描述】:
我已阅读有关此问题的先前问题/答案,但似乎没有人回答我的问题。我的最终目标是将数据从 R 获取到 SQL 表中。
为此,我首先在 Microsoft SQL Server 2012 中创建了表 [PL_DEV].[PL_A].[X],其中包含以下列:ST VARCHAR(10)、YEAR VARCHAR(10)、Intercept FLOAT、Y FLOAT、Z FLOAT、U FLOAT .主键已添加到 ST、YEAR 列。
从那里,我建立了一个 RODBC 连接,我称之为conn。
设置完成后,我为第一行数据创建了一个名为 df 的数据框:
ST YEAR INTERCEPT Y Z U
"01" "2009" -50012.37 0.6341358 16569.52 61.42544
设置完成后,我尝试将此数据框 (df) 中的数据插入到我创建的 SQL 表 ([PL_DEV].[PL_A].[X]) 中。我试图用以下语句做到这一点:
sqlSave(conn, dat = df, tablename = "[PL_DEV].[PL_A].[X]", append = TRUE, rownames = FALSE)
我设置了append = TRUE,这样它就不会创建表,而是插入数据,还设置了rownames = FALSE,这样它就不会添加额外/不必要的列。
但是,当我执行上面的语句时,我得到了以下错误:
sqlSave(conn, df, tablename = "[PL_DEV].[PL_A].[X]", 中的错误: 42S01 2714 [Microsoft][SQL Server Native Client 11.0][SQL Server] 数据库中已经有一个名为“X”的对象。 [RODBC] 错误:无法 SQLExecDirect 'CREATE TABLE [PL_DEV].[PL_A].[X]
(“ST” varchar(255),“YEAR” varchar(255),“拦截”浮点数,“Y”浮点数, “Z”浮动,“U”浮动)'
如果我执行以下操作,我可以将数据插入到 SQL 表中(更具体地说是[master].[dbo].[df]):
sqlSave(conn, dat = df)
但是,一旦数据在此表中,就会出现同样的问题,我无法在表中插入更多数据。
有谁知道我做错了什么或另一个功能会为我做同样的事情?上周我刚开始用 R 编程。任何见解将不胜感激。
【问题讨论】:
标签: sql sql-server r sql-server-2012 rodbc