- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 SQL Server 中创建了一个表,如下所示:
CREATE TABLE testPK
(
ID INT NOT NULL IDENTITY (1, 1) PRIMARY KEY,
NumVal NUMERIC (18, 4)
)
现在我想使用 RODBC 函数 sqlSave()
将数据从 R 程序附加到 testPK,如下所示:
# Specify data to append
test.dt <- data.table(NumVal = 1.0)
# Assign connection
myconn <- odbcDriverConnect(connectionString)
# Append test.dt to SQL table testPK
sqlSave(channel = myconn, dat = test.dt, tablename = 'testPK',
rownames = FALSE, append = TRUE)
# Close connection
odbcCloseAll()
但是,这会返回错误消息
Error in odbcUpdate(channel, query, mydata, coldata[m, ], test = test, :
missing columns in 'data'
我没有为数据表中的列 ID 提供值,因为我假设 SQL 表的该列上的 IDENTITY 规范会导致 SQL Server 在附加新记录时生成唯一值。我怎样才能从 R 中获得这个结果?
同样的问题已发布here ,但没有公认的解决方案。
最佳答案
我无法使用 sqlSave()
找到解决方案,因此我使用了 here 中概述的方法。用于将任意数量的列附加到 SQL 表。以我的单列数据表为例,以下代码达到了预期的结果:
# Specify data to append
test.dt <- data.table(NumVal = 1.0)
# Assign connection
myconn <- odbcDriverConnect(connectionString)
# Concatenate the VALUES portion of the query
values <- paste("(", test.dt$NumVal, ")", sep = "", collapse = ",")
# Create the full query
testQuery <- paste("INSERT INTO testPK (NumVal) VALUES", values)
# Append test.dt to SQL table testPK
sqlQuery(channel = myconn, query = testQuery)
# Close connection
odbcCloseAll()
关于sql-server - 如何使用 R 中的函数 sqlSave() 将数据附加到具有 IDENTITY 主键的 SQL Server 表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47273104/
我有一个关于使用 sqlSave 的问题。 R 如何将数据框中的 RODBC 数据映射到数据库表列? 如果我有一个包含 X 和 Y 列的表以及一个包含 X 和 Y 列的数据框,RODBC 会将 X 放
我正在尝试使用以下代码将 R 数据帧保存回 sql 数据库: channel <- odbcConnect("db") sqlSave(db, new_data, '[mydb].[d
我有一些数据试图上传到数据库中的表中。例如: df str(tmp) 'data.frame': 3 obs. of 2 variables: $ name : chr "Fred" "Geo
我正在使用 sqlSave 添加我的矩阵 B,如下所示: Noinscr 88877799 45645687 23523521 45454545 到 SQL 表。 所以我运行以下命令: sqlSave
我想了解 RODBC 如何确定新创建的 (Access) 表的列类型? sqlSave 的 R 文档非常神秘:“类型是通过咨询参数 varTypes 和 typeInfo 来选择的”。并且没有这个论点
几年后,我刚刚回到 R 领域,遇到了通过 sqlSave 循环传递变量的问题。我已经启动了 RODBC,并在 Win7 机器上使用 MySQL 顺利运行,但似乎无法让我的循环工作。这是我拥有的数据以及
我正在尝试使用 RODBC 在 MySQL 数据库中插入一个 data.frame。我使用的命令如下: sqlSave(channel,dbData,tablename='table_name', a
我在使用 RODBC 将数据框插入 mySql 数据库时遇到一些困难。下面是我正在使用的代码: data <- data.frame(analysedDataID=c(1,2,3), plateWel
我正在尝试使用 RODBC 包中的 sqlSave 写入 msaccess 数据库。我打开与数据库的连接没有问题。我可以从表格中阅读。我什至可以使用 sqlSave 进行某些简单的更新,但是对于下表和
我有一个如下的数据集 > head(resultsclassifiedfinal_MC_TC_P1) FEEDBACK_NUMBER Biz_Div_Num ACCURACY Category_N
我在 mysql 数据库中创建了一个具有以下规范的空表 Field Type Null Key Default
我正在尝试将数据从 R 导出到一个 Excel 文件(到不同的工作表中): library(plyr) library(RODBC) g <- lapply(iris, function(x) as.
我在 R 中有一个包含 3 列的数据框,使用 sqlSave 我可以轻松地在 SQL 数据库中创建一个表: channel sqlUpdate(channel, dbdata, tablename
我将 R 与我的 mysql 数据库连接起来。当我使用命令 sqlSave(channel, dataframe) 时,我的数据帧将被写入数据库,但所有在 R 中编码为日期的条目(类“POSIXct”
我正在使用 RODBC 尝试将新表(本地数据框)写入 Oracle 数据库。我正在处理的问题是许多字段是字符变量,长度超过 255 个字符。根据 RODBC 小插图,我运行了这段代码来初始化表: sq
这是运行了几个月的遗留 R 代码。我能够从 R 中读取/删除 Teradata 中的表,但无法将数据从数据框写入表中。 我尝试过删除表并重新创建和编写不同的数据框。 sqlSave(ch, df, t
我正在尝试使用 R 中 RODBC 包的 sqlSave 函数更新 SQL 表。数据存在于数据框中。当我尝试运行命令时: sqlSave(DBConn, dat=df, verbose=T, tabl
我在 SQL Server 中创建了一个表,如下所示: CREATE TABLE testPK ( ID INT NOT NULL IDENTITY (1, 1) PRIMARY KEY,
我是一名优秀的程序员,十分优秀!