Oracle显式游标Explicit Cursor
在Oracle数据库中,游标是一种用于在SQL操作中控制数据行遍历的机制。游标主要用于对查询结果集进行逐行处理。游标可以显式创建,也可以隐式使用。显式游标是用户自定义的游标,可以手动控制游标的打开、关闭、提交和取消等操作。
创建显式游标的基本语法如下:
DECLARE
CURSOR cursor_name IS select_statement;
BEGIN
OPEN cursor_name;
FETCH cursor_name INTO variable1, variable2, ..., variableN;
CLOSE cursor_name;
END;
以下是一个使用显式游标的例子,该例子中创建了一个游标,遍历employees表中的所有员工记录,并打印员工的id和name:
DECLARE
CURSOR emp_cursor IS SELECT id, name FROM employees;
emp_id employees.id%TYPE;
emp_name employees.name%TYPE;
BEGIN
OPEN emp_cursor;
LOOP
FETCH emp_cursor INTO emp_id, emp_name;
EXIT WHEN emp_cursor%NOTFOUND;
DBMS_OUTPUT.PUT_LINE('ID: ' || emp_id || ' Name: ' || emp_name);
END LOOP;
CLOSE emp_cursor;
END;
在这个例子中,首先声明了一个名为emp_cursor
的游标,它从employees
表中选择id
和name
字段。然后打开游标,在一个循环中不断地从游标中获取数据,直到游标没有更多的数据(%NOTFOUND
属性为TRUE
)。每获取一条数据,就打印出员工的id
和name
,最后关闭游标。
评论已关闭