Estou vendo um jeito de facilitar e tornar rápidas minhas consultas através
de views.

Não queria deixar elas fixas, por exemplo:

 

CREATE OR REPLACE VIEW v_paciente AS SELECT paciente.pacnome FROM paciente;

 

Gostaria de passar parâmetros e ela montar a view.

Tentei fazer usando function da seguinte maneira:

 

CREATE OR REPLACE FUNCTION consulta(campos text, tabela text, chave text, id
integer)

  RETURNS void AS

$BODY$

BEGIN

                EXECUTE 'CREATE VIEW consulta AS SELECT ' || campos || '
FROM ' || tabela || ' WHERE ' || chave || ' = ' || id;

END;      

$BODY$

  LANGUAGE 'plpgsql' VOLATILE

 

Se chamo a Function passando os parâmetros: select
consulta('pacnome','paciente','paccod',1)

É criada a seguinte view:

 

CREATE OR REPLACE VIEW consulta AS 

 SELECT paciente.pacnome

   FROM paciente

  WHERE paciente.paccod = 1;

 

Sendo assim se um outro usuário chamar a função “consulta” com outros
parâmetros a view irá mudar.

Gostaria de saber se existe um jeito de chamar uma view com parâmetros, ou
algo parecido. Ou alguma dica.

Mto obrigado

_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a