PL/pgSQL 中 PL/SQL %NOTFOUND 的等价物是啥?
Posted
技术标签:
【中文标题】PL/pgSQL 中 PL/SQL %NOTFOUND 的等价物是啥?【英文标题】:What is the equivalent of PL/SQL %NOTFOUND in PL/pgSQL?PL/pgSQL 中 PL/SQL %NOTFOUND 的等价物是什么? 【发布时间】:2010-10-06 14:25:24 【问题描述】:一切都在标题中。
我在游标上循环,想要
EXIT WHEN curs%NOTFOUND
当没有更多行时,PostgreSQL下的%NOTFOUND相当于什么?
编辑
或其他游标属性 %ISOPEN、%EMPTY 等...
【问题讨论】:
【参考方案1】:目前无法对此进行测试,但如果您尝试一下呢? 查看章节标题 37.7.3.2。在此链接退出 http://www.postgresql.org/docs/8.2/static/plpgsql-control-structures.html
IF NOT FOUND THEN
EXIT;
END IF;
或
EXIT WHEN NOT FOUND;
【讨论】:
它给出错误错误:列“找到”不存在第 1 行:选择未找到代码BEGIN OPEN pan_tan; LOOP FETCH pan_tan INTO rcrd;找不到时退出;【参考方案2】:FOUND 变量
隐式光标
SELECT * INTO myrec FROM emp WHERE empname = myname;
IF NOT FOUND THEN
RAISE EXCEPTION 'employee % not found', myname;
END IF;
使用显式游标
...
LOOP
FETCH cursor INTO whatever;
EXIT IF NOT FOUND;
do something with whatever
end LOOP;
【讨论】:
这不是我想要的。我知道这个功能,但在这里您没有使用任何游标,而是使用 SELECT 查询。你明白我的意思了吗? 你试过了吗?由于 IF NOT FOUND,我尝试过并遇到错误。 您使用的是什么版本的数据库,您遇到的错误是什么?你能发布你的代码吗?以上是关于PL/pgSQL 中 PL/SQL %NOTFOUND 的等价物是啥?的主要内容,如果未能解决你的问题,请参考以下文章