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_table
id
name
test_table.name