PostgreSQL に実装したい次の MySQL スクリプトがあります。
SET @statement = search_address_query;
PREPARE dynquery FROM @statement;
EXECUTE dynquery;
DEALLOCATE PREPARE dynquery;
PostgreSQL を使用してユーザー定義変数 "@statement" を定義するにはどうすればよいですか。
PostgreSQL に実装したい次の MySQL スクリプトがあります。
SET @statement = search_address_query;
PREPARE dynquery FROM @statement;
EXECUTE dynquery;
DEALLOCATE PREPARE dynquery;
PostgreSQL を使用してユーザー定義変数 "@statement" を定義するにはどうすればよいですか。
Postgresは通常、プレーンSQLで変数を使用しません。しかし、あなたもそれを行うことができます:
SET foo.test = 'SELECT bar FROM baz';
SELECT current_setting('foo.test');
マニュアルのカスタマイズされたオプションについてお読みください。
PostgreSQL 9.1以前では、それを使用する前に宣言する必要がありましcustom_variable_classes
た。
ただし、PL(手続き型言語)なしで動的SQLを実行することはできません。 コマンドを使用してアドホックステートメントを実行します(ただし、コマンドからデータを返すことはできません)。または、動的SQLを実行する(そして考えられるあらゆる方法でデータを返すことができる)関数を作成するために使用します。EXECUTE
DO
CREATE FUNCTION
動的SQLを使用する場合は、SQLインジェクションから保護するようにしてください。
関連している: