Cha*_*nya 10 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 'plpgsql';
Run Code Online (Sandbox Code Playgroud)
当我执行上面的代码时,我收到以下错误,
SELECT _chkLogin('username','abcd') as passed;
Run Code Online (Sandbox Code Playgroud)
错误:查询没有结果数据的目的地
我用过表演然后我得到了一个不同的问题,
PERFORM _chkLogin('username','abcd');
Run Code Online (Sandbox Code Playgroud)
错误:"执行"或附近的语法错误
建议我应该怎么做才能克服这个错误.
小智 19
你确实返回了通过,但你永远不会给它赋值.
并且函数中的select命令必须具有放置数据的位置.
所以.将您的SQL更改为:
SELECT (_password = $2) INTO passed FROM _vRegistration WHERE _userid = $1;
Run Code Online (Sandbox Code Playgroud)
另外 - 因为您使用变量名称(userid,pwd),所以使用它们:
SELECT (_password = pwd) INTO passed FROM _vRegistration WHERE _userid = userid;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
19999 次 |
最近记录: |