Dynamic-Sql
Greenplum 是否支持動態 sql?
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 注入。