Passando nomes de coluna dinamicamente para uma variável de registro no PostgreSQL
Usando o PostgreSQL, os valores das colunas de uma tabela para o primeiro registro são armazenados em uma variável de registro. por ex: deixe a variável ser:recordvar
recordvar.columnname
fornece o valor do nome da coluna especificado. Vou definir ocolumname
em uma variável:
var := columnname
No lugar decolumnname
se eu substituir com a variável, ou seja,recordvar.var
, Não está funcionando.
Por favor, deixe-me saber como proceder nesta situação. A seguir está o código de amostra:
CREATE OR REPLACE FUNCTION getrowdata(id numeric, table_name character varying)
RETURNS SETOF void AS
$BODY$
DECLARE
srowdata record;
reqfield character varying;
value numeric;
BEGIN
RAISE NOTICE 'id: %',id;
reqfield:= 'columnname';
EXECUTE 'select * from datas.'||table_name||' WHERE id = '||id into srowdata;
RAISE NOTICE 'srowdata: %',srowdata;
RAISE NOTICE 'srowdatadata.columnname: %',srowdata.columnname;
value:= srowdata.reqfield;
RAISE NOTICE 'value: %',value;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100
ROWS 1000;