Fórum Função PLpgSQL que retorna um registro de acordo com a condição #526935
27/07/2015
0
Olá galera, fiz uma função em PLpgSQl (Postgres) que recebe 2 parãmteros, o 1º é o dados na tabela e o 2º o tipo de pesquisa se será pelo nome de usuário ou pelo nome completo.
Na tabela tem 2 registros com usuário 'adenes' e 'Junior'.
O problema que estou recebendo o registros enquanto existe o usuário 'adenes', veja:
Total query runtime: 20 ms.
0 rows retrieved.
se executo a seguinte query SELECT * FROM Login WHERE Usuario = 'adenes';
Total query runtime: 14 ms.
1 rows retrieved.
Então como faço para receber o registro usando a função acima?
Na tabela tem 2 registros com usuário 'adenes' e 'Junior'.
CREATE OR REPLACE FUNCTION BuscarUsuario(VARCHAR(40), VARCHAR(10))
RETURNS SETOF Login AS
$$
DECLARE
TipoPesquisa ALIAS FOR $2;
Pesquisar ALIAS FOR $1;
BEGIN
if (TipoPesquisa = 'USUARIO')
THEN PERFORM * FROM Login WHERE Usuario=Pesquisar;
ELSE
IF TipoPesquisa = 'NOME'
THEN PERFORM * FROM Login WHERE Nome=Pesquisar;
END IF;
END IF;
END;
$$
LANGUAGE 'plpgsql';
SELECT * FROM BuscarUsuario('adenes', 'USUARIO');O problema que estou recebendo o registros enquanto existe o usuário 'adenes', veja:
Total query runtime: 20 ms.
0 rows retrieved.
se executo a seguinte query SELECT * FROM Login WHERE Usuario = 'adenes';
Total query runtime: 14 ms.
1 rows retrieved.
Então como faço para receber o registro usando a função acima?
Adenes Junior
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)