Postgresql 错误:查询没有结果数据的目标

Postgresql 错误:查询没有结果数据的目标,postgresql,plpgsql,Postgresql,Plpgsql,当我执行上面的代码时,我得到以下错误 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 'plp

当我执行上面的代码时,我得到以下错误

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;
错误:在或附近出现语法错误 “表演”


建议我如何克服此错误。

您确实返回passed,但从未为其赋值

函数中的select命令必须有放置数据的位置

所以。将SQL更改为:

PERFORM _chkLogin('username','abcd');
另外-由于您正在使用变量名(userid,pwd)使用它们:

SELECT  (_password = $2) INTO passed FROM _vRegistration WHERE _userid = $1;
关于赋值的注记 (见附件)

语言PLpgSQL语法有多种表达方式:

SELECT  (_password = pwd) INTO passed FROM _vRegistration WHERE _userid = userid;
EXECUTE
子句仅用于“动态执行”(性能较差)

使用
Y:=f(X)
选择
执行静态声明

 EXECUTE 'f(X)' INTO Y;     
放弃结果或处理无效返回时使用station:

 SELECT f(X) INTO Y;
 SELECT f(X) INTO Y;
 PERFORM f(X);