gpt4 book ai didi

r - 在 R 中执行 Postgres 函数

转载 作者:行者123 更新时间:2023-11-29 12:23:20 24 4
gpt4 key购买 nike

我正在尝试在 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 中以相同的方式调用...我找不到 diff 示例,否则。

我得到以下错误

TIBCO Spotfire Statistics Services 返回错误:“错误:RS-DBI 驱动程序:(无法检索结果:错误:“?”处或附近的语法错误第 1 行:从“Main”中选择 *。“InsertDataSet”? ^) 评估(expr,环境,附) 评估(expr,环境,附) dbSendQuery(conn, "select * from\"Main\".\"InsertDataSet\"?", standardGeneric("dbSendQuery") .standardGeneric("dbSendQuery", structure(function(conn, statement, dbSendQuery(conn, "select * from\"Main\".\"InsertDataSet\"?", postgresqlExecStatement(conn, 声明, ...) 无效的'。 在 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 Postgres 包,但通过 this SO answer我可以提出以下建议:

sql <- "SELECT * FROM Main.InsertDataSet($1,$2,$3)"
result <- dbSendQuery(conn, sql, c(Name, AInteger,bInteger))
out <- dbFetch(result)
dbClearResult(result)

或更直接

out <- dbGetQuery(conn, sql, c(Name, AInteger,bInteger))

关于r - 在 R 中执行 Postgres 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57678509/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com