【发布时间】:2016-05-25 19:22:41
【问题描述】:
在文档here 中,给出了使用cursor 的以下代码示例:
execute block
returns (
relation char(31),
sysflag int)
as
declare cur cursor for
(select rdb$relation_name, rdb$system_flag from rdb$relations);
begin
open cur;
while (1=1) do
begin
fetch cur into relation, sysflag;
if (row_count = 0) then leave;
suspend;
end
close cur;
end
但这也可以这样做:
execute block
returns (
relation char(31),
sysflag int)
as
begin
for select rdb$relation_name, rdb$system_flag
from rdb$relations
into relation, sysflag
do begin
suspend;
end
end
那么我为什么要使用一个呢?最终,上面的示例甚至不需要execlute block,因为它只是一个简单的选择语句。所以我想这个例子太简单了,无法展示它的好处。
【问题讨论】:
-
当前版本的文档包含一个稍微复杂一点的例子:firebirdsql.org/file/documentation/reference_manuals/…
标签: sql firebird database-cursor