我有一个多列超过255个字符的数据框,当我尝试使用下面的代码将数据框导入sql server时,多列被截断为255个字符。
myconn <- odbcDriverConnect("db_name")
sqlSave(myconn, my_data, tablename = "Table_1" ,rownames=FALSE, append = TRUE)
我尝试但没有效果的事情
我尝试在从R导入数据之前在sql中创建表但是没有工作:
CREATE TABLE TEST_Table
(
[Column_1] nvarchar(max),
[Column_2] nvarchar(max),
[Column_3] nvarchar(max)
);
我还尝试在导入数据之前指定varTypes
,如下所示:
columnTypes <- list(Column_1 = "nvarchar(max)", Column_2 = "nvarchar(max)", Column_3 = "nvarchar(max)")
sqlSave(myconn, my_data, tablename = "Table_1" ,rownames=FALSE, append = TRUE, varTypes=columnTypes)
如何在不截断字符串的情况下将此数据帧作为表写入数据库还能做些什么?
答案 0 :(得分:1)
另一种解决方案是
where (row,col) in ((1,2),(3,4))
答案 1 :(得分:0)
我将数据从R推送到SQL的唯一成功是使用巨大的sql字符串构造巨大的INSERT
语句。所以,假设我的数据库已经Table_1
,我想插入一个简单的数据框df
,如
Column_1 Column_2 Column_3
--------------------------------
Fred Wilma Pebbles
Barney Betty Bambam
然后我在R中构建一个sql
字符串
sql = "INSERT Table_1 (Column_1, Column_2, Column_3)
VALUES ('Fred', 'Wilma', 'Pebbles'), ('Barney', 'Betty', 'Bambam')"
并在RODBC连接上运行它。