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'.

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

Adenes Junior

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar