r - SQL从R创建表 - 字符串数据,右截断
问题描述
我正在使用 Microsoft SQL Azure 版本 12,通过在 RStudio 服务器和 DBI 库上进行操作。我需要从长度为 4000 的变量的数据帧创建多个 SQL 表。这可以完成为
# Create dataframe
df <- data.frame("myid" = stringi::stri_rand_strings(5, 4000),
"mydate" = c(Sys.time(), Sys.time()-1, Sys.time()-2, Sys.time()-3, Sys.time()-4) )
# Create SQL table sschema.ttable
DBI::dbWriteTable(conn = connection,
name = DBI::Id(schema = "sschema", table = "ttable"),
value = df,
overwrite = TRUE)
这失败并出现以下错误
result_insert_dataframe(rs@ptr, values, batch_rows) 中的错误: nanodbc/nanodbc.cpp:1617: 00000: [Microsoft][ODBC Driver 17 for SQL Server]String 数据,右截断
我试过了
- 截断变量(次优)
- 创建表 > 将变量更改为格式
VARCHAR(6000)
而不是VARCHAR(255)
> 附加数据框。这会导致相同的“字符串数据,右截断”错误。
任何解决方案如何直接从 R 数据框创建 SQL 表?
解决方案
field.types
答案是使用as定义变量及其所需的 SQL 变量类
# Create SQL table sschema.ttable
DBI::dbWriteTable(conn = connection,
name = DBI::Id(schema = "sschema", table = "ttable"),
field.types=c(myid="varchar(6000)"),
value = df,
overwrite = TRUE)
推荐阅读
- c++ - 禁用 Visual Studio 绿色箭头按钮移动指令指针
- node.js - 从 Next.js 中的 CMS 访问 api
- monaco-editor - 如何在当前视口滚动时获取摩纳哥编辑器中第一条可见行的行号?
- javascript - Vuejs:如何有条件地附加道具?
- css - Vutify 中的不同视口
- python - 如何在python中拆分文本计数字符串列表中的出现次数
- amazon-web-services - 使用数据库脚本将 JSON 数组导入 DynamoDB 表
- android - android 库中的 assembleRelease 任务“:verifyReleaseResources”执行失败
- json - oc 补丁替换图像名称错误“json:无法将对象解组为 jsonpatch.Patch 类型的 Go 值”
- hook - 将 Google Adsense 与 Google 跟踪代码管理器集成