PL/pgSQLを使用してクエリ結果を変数に保存する 質問する

PL/pgSQLを使用してクエリ結果を変数に保存する 質問する

PostgreSQL の手続き型言語である PL/pgSQL でクエリの結果を変数に割り当てるにはどうすればよいでしょうか?

私は次のような機能を持っています:

CREATE OR REPLACE FUNCTION test(x numeric)
RETURNS character varying AS
$BODY$
DECLARE
name   character varying(255);
begin
 name ='SELECT name FROM test_table where id='||x;
  
 if(name='test')then
  --do somthing
 else
  --do the else part
 end if;
end;
return -- return my process result here
$BODY$
LANGUAGE plpgsql VOLATILE

上記の関数では、このクエリの結果を保存する必要があります。

'SELECT name FROM test_table where id='||x;

変数 にname

これをどう処理すればいいのでしょうか?

ベストアンサー1

あなたが探しているのは以下だと思いますSELECT select_expressions INTO:

select test_table.name into name from test_table where id = x;

これにより、関数の引数が取得され、変数に残されます。テーブル名のプレフィックスnameを省略しないでください。省略すると、あいまいな参照に関するエラーが発生します。test_tableidnametest_table.name

おすすめ記事