私はpostgresが初めてで、次の動的クエリを実行しています
EXECUTE 'Select * from products';
次の応答が得られます。
ERROR: syntax error at or near "'Select * from products'"
LINE 1: EXECUTE 'Select * from products';
私はこれが私が欠けている基本的なものになることを知っています
私はpostgresが初めてで、次の動的クエリを実行しています
EXECUTE 'Select * from products';
次の応答が得られます。
ERROR: syntax error at or near "'Select * from products'"
LINE 1: EXECUTE 'Select * from products';
私はこれが私が欠けている基本的なものになることを知っています
plpgsqlのEXECUTE
ステートメントがあります。これは、実行しようとしていることを実行します-SQLクエリ文字列を実行します。dynamicにタグを付けたので、これが探しているものかもしれません。
plpgsql 関数またはDO
ステートメント (匿名コード ブロック) 内でのみ機能します。細かいマニュアルで明確にされたとの区別EXECUTE
SQL-EXECUTE
:
注: PL/pgSQLステートメントは、PostgreSQL サーバーがサポートする SQL ステートメント
EXECUTE
とは関係ありません。EXECUTE
サーバーのEXECUTE
ステートメントは、PL/pgSQL 関数内で直接使用することはできません (必要ありません)。
SELECT
例が示すように動的クエリから値を返したい場合は、関数を作成する必要があります。DO
ステートメントは常に を返しvoid
ます。非常に細かいマニュアルの関数から値を返すことについての詳細。
細かいマニュアルから:
あらすじ
EXECUTE name [ ( parameter [, ...] ) ]
説明
EXECUTE
以前に準備されたステートメントを実行するために使用されます。
そのEXECUTE
ため、SQL の文字列を実行するのではなく、名前で識別される準備済みステートメントを実行し、PREPAREを使用してステートメントを個別に準備する必要があります。
=> prepare stmt as select * from products;
=> execute stmt;
-- "select * from products" output goes here...