ОШИБКА: запрос не имеет никакого места назначения для данных результата

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');

ОШИБКА: синтаксическая ошибка в или рядом "работает"

Предложите меня, что должно я сделать для преодоления этой ошибки.

10
задан Chaitanya 18 January 2010 в 10:52
поделиться

1 ответ

Вы возвращаете переданное значение, но вы никогда не назначаете ему значение.

И команда выбора внутри функции должна иметь место, куда помещать данные.

Итак. Измените SQL на:

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

Также - так как вы используете имена переменных (userid, pwd) используйте их:

SELECT  (_password = pwd) INTO passed FROM _vRegistration WHERE _userid = userid;
19
ответ дан 3 December 2019 в 17:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: