我编写了一个函数来查询 x、y、z 值以使用 R 创建部分。现在,我想用 PL/R 来做这件事,而不是使用 RStudio。
CREATE OR REPLACE FUNCTION section_graph() RETURNS text AS
'
require(RPostgreSQL)
drv <- dbDriver("PostgreSQL")
con <- dbConnect(drv, host="localhost", user="postgres", password="...", dbname="...", port="5432")
rs <- dbSendQuery(con, "SELECT x,y,z FROM (SELECT (section(1,3)).*) AS foo")
section1 <- fetch(rs, 2000)
dbClearResult(rs)
dbDisconnect(con)
pdf("/tmp/myplot.pdf", width=18, height=9)
plot(section1$y, section1$z, type="l", lwd=1.5, lty=3)
dev.off()
print("done")
'
LANGUAGE 'plr';
在dbSendQuery
命令中有查询SELECT x,y,z FROM (SELECT (section(1,3)).*) AS foo
。参数1
代表一个ID,第二个是截面的精度(3m)。
现在,我想像普通的 PostgreSQL 函数一样使用上面的函数(例如,使用语言“sql”)。这意味着,想要在函数中定义参数,如下所示:
SELECT x,y,z FROM (SELECT (section($1,$2)).*) AS foo
$1
$2
是我的函数的参数section_graph
。
语言“plr”可以做到这一点吗?我没有找到有用的东西。
显然函数内查询的双引号存在问题。