1

DBI と Perl のモジュールを介して AWS RedShift にアクセスDBD::Pgしていますが、SQL バインド変数に問題があります。最初にSQLステートメント(?変数の代わりに)で準備を呼び出し、次にマップする必要がある変数配列で実行を呼び出します?が、機能しません。それは単に「構文エラー」を吐き出します。

私の理解では、このバインド変数はドライバーとデータベース自体でサポートされる必要があるため、それがドライバーの問題なのか RedShift の問題なのかはわかりませんが、私の理解 (バインド変数のサポートはドライバーに依存する) かどうかはわかりませんおよび基礎となるデータベース) は正しいです。誰かが明確にできれば、それは素晴らしいことです。

4

1 に答える 1

3

準備済みステートメントはサポートされていますが、パラメーターの正しい表記は $1、$2、... です。

Redshift 開発者ガイドから:

準備されたステートメントは、パラメーター (実行時にステートメントに代入される値) を取ることができます。準備済みステートメントにパラメーターを含めるには、PREPARE ステートメントにデータ型のリストを指定し、準備するステートメント自体で、$1、$2、... という表記を使用して、位置によってパラメーターを参照します。これらのパラメーターの実際の値は、EXECUTE ステートメントで指定します。

于 2013-10-17T12:03:15.267 に答える