0
데이터베이스에서 동적 삽입 문을 사용하려고하지만 문자 열에 오류가 발생합니다. 아래 코드를 참조하십시오.dbSendQuery 텍스트가있는 INSERT 문
Error in rsqlite_send_query([email protected], statement) : no such column: a
는 쿼리 1의 값은
:
[1] "INSERT INTO with_text (id, value) VALUES (1, a);"
나는 문제는 주위에 작은 따옴표 (')의 부족을 실감
library(dplyr)
library(DBI)
library(pool)
library(RSQLite)
df1 <- data.frame(stringsAsFactors = F, id = 1:4, value = letters[1:4])
df2 <- data.frame(stringsAsFactors = F, id = 1:4, value = 100:103)
con <- dbPool(SQLite(), dbname = "test") %>% poolCheckout()
dbWriteTable(con, "with_text", df1, overwrite = T)
dbWriteTable(con, "no_text", df2, overwrite = T)
db1 <- dbReadTable(con, "with_text")
db2 <- dbReadTable(con, "no_text")
new1 <- db1[1,]
new2 <- db2[1,]
query1 <- sprintf(
"INSERT INTO %s (%s) VALUES (%s);",
"with_text",
paste(names(new1), collapse = ", "),
paste(new1, collapse = ", ")
)
query2 <- sprintf(
"INSERT INTO %s (%s) VALUES (%s);",
"no_text",
paste(names(new2), collapse = ", "),
paste(new2, collapse = ", ")
)
db_query1 <- dbSendStatement(con, query1)#fails
dbClearResult(db_query1)
dbReadTable(con, "with_text")
db_query2 <- dbSendStatement(con, query2)
dbClearResult(db_query2)
dbReadTable(con, "no_text")
#fails 라인이 오류가 발생합니다 텍스트 값이지만 해결 방법이 있어야합니다. 어떤 도움을 주셔서 감사합니다. 열 유형을 추가하려고 시도했지만 작동하지 못했습니다.
'query1'의 값을 –
@ W.Murphy로 추가 할 수 있습니까? 텍스트 필드를 사용한다는 점을 제외하면 query2와 동일합니다. 문제는 텍스트 값 주위에 작은 따옴표 (')가 없지만 해결 방법이 있어야한다는 것입니다. > query1 [1] "INSERT INTO with_text (id, value) VALUES (1, a);" – Spencer