Função no POstGres não funciona com query como uma variável?
Olá
Sou iniciante e estava tentando criar uma função no postgres que os resultado fosse dinâmico de acordo com os parâmetros passados e assim a clausula where fosse construída testando os campos.
Minha função da erro justamente na hora que passa a string do select para ser executada.
A FUNÇÃO:
CREATE OR REPLACE FUNCTION public.get_auditoria(
vcpf character varying DEFAULT NULL,
vlogin character varying DEFAULT NULL,
vom character varying DEFAULT NULL,
vidregistro bigint DEFAULT NULL,
vmodulo character varying DEFAULT NULL,
vacao text DEFAULT NULL,
vip character varying DEFAULT NULL
)
RETURNS SETOF record
LANGUAGE 'plpgsql'
COST 100
VOLATILE
ROWS 1000
AS $BODY$
DECLARE
txtsql character varying :='SELECT cpf FROM auditoria WHERE 1=1';BEGIN
IF vcpf <> NULL THEN
txtsql := txtsql || ' AND cpf=vcpf';
END IF;
RETURN QUERY (txtsql);
RETURN;
END;
$BODY$;
ALTER FUNCTION public.get_auditoria(
character varying,
character varying,
character varying,
bigint,
character varying,
text,
character varying
)
OWNER TO postgres;
O ERRO:
ERROR: ERRO: erro de sintaxe em ou próximo a "txtsql"
LINE 28: RETURN QUERY (txtsql);
^
SQL state: 42601
Character: 487
Discussão (0)
Carregando comentários...