Greenplum 是否支持动态 sql?

Phi*_*bbs 4 dynamic-sql greenplum

PostgreSQL 实现了execute ... using将参数传递给动态 SQL的选项,据我所知,这个功能是在 8.4 版中引入的。我们使用的是Greenplum,它是从8.2 版的PostgreSQL 分叉出来的,所以它没有这个特性。

有没有其他方法可以在 Greenplum 或 PostgreSQL 8.2 中做同样的事情?

dez*_*zso 5

我不能确定,但CREATE FUNCTION文档中有一个提示:

langname 实现函数的语言的名称。可以是 SQL、C、内部或用户定义的过程语言的名称。有关 Greenplum 数据库中支持的过程语言,请参阅 CREATE LANGUAGE。

反过来,引用的地方说

PL/pgSQL 语言默认安装在 Greenplum 数据库中。

现在这EXECUTE ... USING是一个 PL/pgSQL 特性,所以唯一的问题是它来自哪个 PostgreSQL 版本。文档指向 8.2 - 这样看起来你很不走运。

我已联系 Greenplum 支持人员以获得明确答复,但从未得到答复。

至于解决缺少该构造的问题,您显然可以将所需的任何 SQL 字符串连接在一起并执行它。注意正确引用传入的值并避免 SQL 注入。