0

我想通过传递两个参数来创建一个连接到 SQLite 数据库的函数:数据库名称和表。

我试过这个:

sqLiteConnect <- function(database, table) {
  con <- dbConnect("SQLite", dbname = database)
  query <- dbSendQuery(con, "SELECT * FROM  ", table)
  fetch(query, n = -1)
  }

但我通过result <- sqLiteConnect(primary_database, "table_name")Error in sqliteExecStatement(conn, statement, ...) : RS-DBI driver: (error in statement: near " ": syntax error)

如果我将我的功能更改为

sqLiteConnect <- function(database, table) {
  con <- dbConnect("SQLite", dbname = database)
  query <- dbSendQuery(con, "SELECT * FROM  ", table, "")
  fetch(query, n = -1)
  }

我明白了Error in sqliteExecStatement(conn, statement, ...) : unused argument ("")

我想问题在于将变量连接到字符串。

4

1 回答 1

1

dbSendQuery 需要将 SQL 语句作为单个字符串(它不将表作为参数),因此您需要使用 paste() 或 sprintf() 创建它,例如:

sqLiteConnect <- function(database, table) {
 con <- dbConnect("SQLite", dbname = database)
 query <- dbSendQuery(con, paste("SELECT * FROM ", table, ";", sep="")) 
 fetch(query, n = -1)
 }
于 2013-08-28T04:37:57.237 回答