を使用するpl/pgsql関数を使用していますcustom_variable_class
が、関数コードは
CREATE OR REPLACE FUNCTION can_connect("pUserId" character varying)
RETURNS boolean AS
$BODY$DECLARE
user_id integer ;
BEGIN
SELECT users.user_serial INTO user_id
FROM public.users
WHERE users.user_id="pUserId"
;
set public.userId to user_id ;
set public.companyId to "pUserId" ;
RETURN true ;
EXCEPTION
WHEN OTHERS THEN
raise notice ' error %',sqlerrm ;
END ;
$BODY$
LANGUAGE plpgsql VOLATILE
今関数を使用しています
select can_connect ('amr' );
t
大丈夫です。戻り値はt
期待どおりです。
しかし、セッション変数の値を取得しようとすると
select current_setting('public.userId') ;
the result is
user_id
関数の引数を使用する場合、これは変数名と同じ値ではありません
select current_setting('public.pUserId') ;
the result is
pUserId
ありがとうございました。