gpt4 book ai didi

sql - PostgreSQL 游标

转载 作者:行者123 更新时间:2023-11-29 11:13:38 37 4
gpt4 key购买 nike

我正在尝试使用 PostgreSQL 学习基本游标。这是我的脚本:

DECLARE cur_employees CURSOR FOR
SELECT *
FROM employee

CLOSE cur_employees

我想遍历列表并输出那些活跃的。我应该从哪里开始?

最佳答案

即使在 plpgsql 中处理查询结果,您也很少想在 PostgreSQL 中显式使用游标。这与几乎所有时间都在使用的许多其他 SQL 数据库形成鲜明对比。

在 plpgsql 中,您可以简单地编写如下内容:

DECLARE
emp employee%rowtype;
BEGIN
FOR emp IN SELECT * FROM employee LOOP
IF emp.active THEN
RAISE INFO 'Active: %', emp.employee_id
END IF;
END LOOP;
END

在上面,plpgsql 语言处理程序处理打开、绑定(bind)、获取和关闭自身(更多关于 declarationscontrol structures)。

从 9.0 开始使用 PostgreSQL,您可以简单地使用“DO” block 开始执行 plpgsql。对于以前的版本,您需要创建一个函数并选择它。如果您正在寻找 PostgreSQL 等价物,例如,在 SQL Server 上使用游标遍历结果,那就是它。请注意,迭代等不是 SQL 方言的一部分,只是 plpgsql(或任何其他嵌入式语言)的一部分。

SQL 级别的“DECLARE CURSOR xxx”语法可以这样使用:

DECLARE cur_employees CURSOR FOR SELECT * FROM employee;
FETCH NEXT FROM cur_employees;
// etc..
CLOSE cur_employees;

这可以用来仔细获取查询结果集的一部分。但是,使用这些并不常见,因为通常您的客户端驱动程序会提供某种功能来执行此操作(例如,JDBC 中的可滚动结果集)。您还可以从类似于 Oracle 的函数返回游标,尽管这也是一个相对罕见的用例。

关于sql - PostgreSQL 游标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8624036/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com