【发布时间】:2019-08-27 16:02:41
【问题描述】:
我正在尝试在 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\"?", 标准通用(“dbSendQuery”) .standardGeneric(“dbSendQuery”,结构(函数(conn,语句, dbSendQuery(conn, "select * from \"Main\".\"InsertDataSet\"?", postgresqlExecStatement(conn, statement, ...) 空值'。 在 Spotfire.Dxp.Data.DataFunctions.Executors.RemoteFunctionClient.OnExecuting() 在 Spotfire.Dxp.Data.DataFunctions.Executors.AbstractFunctionClient.d__31.MoveNext() 在 Spotfire.Dxp.Data.DataFunctions.Executors.SPlusFunctionExecutor.d__12.MoveNext() 在 Spotfire.Dxp.Data.DataFunctions.DataFunctionExecutorService.d__3.MoveNext()
【问题讨论】:
标签: r postgresql terr