postgresql 动态变量参考

postgresql dynamic variable reference

我正在尝试编写一个函数,该函数 return 动态选择变量值,如下所示。

create function get_constval(constname text) 
returns text
language plpgsql
as
$$
  declare 
     alpha varchar(100):= 'This is alpha value'; 
     beta  varchar(100):= 'This is beta  value';
     constval varchar(100);
  begin
     constval:=constname;
     return constval;
  end;
$$ 

当我运行代码 select get_constval('alpha') 它 return 是 'alpha' 而不是 'This is alpha value' 有没有办法动态评估变量和 return 值?

谢谢, NSR

据我所知,这是不可能的。

你可以用 jsonb 做类似的事情:

DO
$$DECLARE
   vars jsonb := '{ "alpha": "This is alpha value", "beta": "This is beta  value" }';
   constval text;
   constname text := 'alpha';
BEGIN
   EXECUTE 'SELECT ()->>' INTO constval
      USING vars, constname;
   RAISE NOTICE 'constval = ''%''', constval;
END;$$;

NOTICE:  constval = 'This is alpha value'
DO