views:

485

answers:

1
CREATE OR REPLACE FUNCTION _chkLogin(userid varchar, pwd varchar)
RETURNS BOOLEAN AS
$BODY$
DECLARE 
 passed BOOLEAN;
BEGIN
 SELECT  (_password = $2) FROM _vRegistration WHERE _userid = $1;
 RETURN passed;
END;
$BODY$
LANGUAGE 'plpgsql';

When am executing the code above am getting the following error,

SELECT _chkLogin('username','abcd') as passed;

ERROR: query has no destination for result data

I've used perform then i get a different problem,

PERFORM _chkLogin('username','abcd');

ERROR: syntax error at or near "perform"

Suggest me what should I be doing in order to overcome this error.

+1  A: 

You do return passed but you never assign value to it.

And select command within the function has to have place to put data to.

So. Change your SQL to:

SELECT  (_password = $2) INTO passed FROM _vRegistration WHERE _userid = $1;

Also - since you're using names for variables (userid, pwd) use them:

SELECT  (_password = pwd) INTO passed FROM _vRegistration WHERE _userid = userid;
depesz