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';
То, когда выполняю код выше, получает следующую ошибку,
SELECT _chkLogin('username','abcd') as passed;
ОШИБКА: запрос не имеет никакого места назначения для данных результата
Я использовал, работают тогда, я получаю другую проблему,
PERFORM _chkLogin('username','abcd');
ОШИБКА: синтаксическая ошибка в или рядом "работает"
Предложите меня, что должно я сделать для преодоления этой ошибки.
Вы возвращаете переданное значение, но вы никогда не назначаете ему значение.
И команда выбора внутри функции должна иметь место, куда помещать данные.
Итак. Измените SQL на:
SELECT (_password = $2) INTO passed FROM _vRegistration WHERE _userid = $1;
Также - так как вы используете имена переменных (userid, pwd) используйте их:
SELECT (_password = pwd) INTO passed FROM _vRegistration WHERE _userid = userid;