【发布时间】:2020-05-02 17:45:45
【问题描述】:
我正在尝试从一系列可供全局环境使用的数据框(通过 R 中的函数创建的数据框)在 SQL 数据库中创建一个新表。
我能够连接到服务器:
#libraries
library(odbc)
library(dplyr)
library(DBI)
#set up a connection to the database
staging_database <- dbConnect(odbc::odbc(), "staging_db")
#Write dataframe to table in database (table does not exist yet in SQL!)
dbWriteTable(staging_database , 'test_database', `demographics_dataframe`, row.names = FALSE)
但是,我收到以下错误:
Error: <SQL> 'CREATE TABLE "test_database" (
"field1" varchar(255),
"field2" BIT,
"field3" BIT,
"field4" varchar(255),
"field5" varchar(255),
"field6" varchar(255),
"field7" varchar(255),
"field8" INT,
"field9" INT,
这里非常无益的错误 - 有什么我遗漏的吗?我遵循了 dbWritetable 的文档。我注意到,我认为可能是问题的一部分,是我无法查看“staging_db”中的任何现有表。
dbListTables(staging_database) 显示了一堆元数据,但没有实际存在的表(我可以通过登录 Microsoft SQL Server 来验证它们是否存在)。
【问题讨论】:
-
假设您的
demographics_dataframe是您要写入数据库的数据框,它不应该有向后的刻度吗? -
这就是它在 R 中自动完成数据帧的方式。没有这些引号,它会给我一个意外的符号错误。
-
这很奇怪,如果没有关于 db 连接的信息,除了可能值得检查您对 db 的写访问权限以及
demographics_dataframe是否是 data.frame 或可以强制为一个?