Dynamic-Sql

Greenplum 是否支持動態 sql?

  • February 18, 2017

PostgreSQL 實現了execute ... using將參數傳遞給動態 SQL 的選項,據我所知,這個功能是在 8.4 版中引入的。我們使用的是 Greenplum,它是 8.2 版的 PostgreSQL 的分支,所以它沒有這個特性。

在 Greenplum 或 PostgreSQL 8.2 中還有其他方法可以做同樣的事情嗎?

我無法確定,但CREATE FUNCTION文件中有提示:

langname 實現函式的語言名稱。可以是 SQL、C、internal 或使用者定義的過程語言的名稱。有關 Greenplum 數據庫中支持的過程語言,請參閱 CREATE LANGUAGE。

反過來,引用的地方說

PL/pgSQL 語言預設安裝在 Greenplum 數據庫中。

現在這EXECUTE ... USING是一個 PL/pgSQL 特性,所以唯一的問題是它來自哪個 PostgreSQL 版本。文件指向 8.2 - 這樣看起來你很不走運。

我已經聯繫了 Greenplum 支持以獲得明確的答案,但從未得到答案。

至於解決缺少該構造的問題,您顯然可以將所需的任何 SQL 字元串連接在一起並執行它。注意正確引用傳入的值並避免 SQL 注入。

引用自:https://dba.stackexchange.com/questions/115344