我正在尝试在 R 中执行 postgres 函数(使用 Spotfire Terr),但是我无法获得适用于 dbSendQuery 的语法
我已经尝试了 dbGetQuery 和 dbSendQuery 并且无法让它工作。我查找了几个示例,但我发现的唯一示例是具有“插入”或“更新”语句的示例。我一直无法找到如何执行功能。我看到使用 sqlExecute (dbcon, "EXEC .....") 的 sql server 是可能的。Postgres有什么等价的吗?
因此该函数会根据传递的 3 个参数执行一些插入语句。这是我尝试过的:
Name<-'this is a test'
AInteger<-1
BInteger<-2
result<- dbSendQuery(conn, 'select * from "Main"."InsertDataSet"(?,?,?)', list(Name, AInteger,bInteger))
该函数采用 3 个参数。在 postgres 数据库中,我使用 select * from "Main"."InsertDataSet"('a name',123,124) 调用该函数。我认为它可以在 R 中以相同的方式调用...我找不到差异示例,否则。
我收到以下错误
TIBCO Spotfire 统计服务返回错误:'错误:RS-DBI 驱动程序:(无法检索结果:错误:在“?”或附近出现语法错误:第 1 行:从“Main”中选择 *。“InsertDataSet”?^) eval (expr, envir, enclos) eval(expr, envir, enclos) dbSendQuery(conn, "select * from \"Main\".\"InsertDataSet\"?", standardGeneric("dbSendQuery") .standardGeneric("dbSendQuery",结构(函数(conn,语句,dbSendQuery(conn,“从\“Main\”中选择*。\“InsertDataSet\”?”,postgresqlExecStatement(conn,语句,...)NULL'。在 Spotfire.Dxp.Data。 Spotfire.Dxp.Data.DataFunctions 上的 DataFunctions.Executors.RemoteFunctionClient.OnExecuting()。Executors.AbstractFunctionClient.d__31.MoveNext() 在 Spotfire.Dxp.Data.DataFunctions.Executors.SPlusFunctionExecutor.d__12.MoveNext() 在 Spotfire.Dxp.Data.DataFunctions.DataFunctionExecutorService.d__3.MoveNext()