我正在使用一个 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 
谢谢你。