2013-10-11 46 views
1

我在Perl中通過DBI和DBD::Pg模塊訪問AWS RedShift,並且我在SQL綁定變量中遇到了一些問題。我首先用sql語句調用準備(?代替變量),然後我調用需要映射到?的變量數組執行,但它不起作用。它只是吐出「語法錯誤」。RedShift Postgresql支持綁定變量嗎?

我的理解是,這個綁定變量需要驅動程序和數據庫本身的支持,所以我不確定它是否是驅動程序或RedShift的問題,但後來我不確定我的理解(綁定變量支持取決於驅動程序和底層數據庫)是否正確。如果有人能夠澄清,那會很好。

回答

2

準備語句的支持,但對於參數的正確標記爲$ 1,$ 2,...

Redshift Developer Guide

預處理語句可以帶參數:值被取代 入語句執行時。要在 準備好的語句中包含參數,請在PREPARE 語句中提供數據類型列表,並且在要準備的語句中,參考 參數按位置使用符號$ 1,$ 2,...執行時 該語句,請在 EXECUTE語句中指定這些參數的實際值。