1.CURSOR: когда PLSQL выдает операторы sql, он создает личную рабочую область
для синтаксического анализа и выполнения оператора sql называется курсор.
2. ПРЕДПОЛАГАЕТСЯ: когда любой исполняемый блок PL / SQL выдает инструкцию sql.
PL / SQL создает неявный курсор и автоматически управляет средствами
происходит открытие и закрытие. Используется при возврате оператора SQL
только одна строка. Имеет 4 атрибута SQL% ROWCOUNT, SQL% FOUND,
SQL% NOTFOUND, SQL% ISOPEN.
3.EXPLICIT: Он создается и управляется программистом. Это нужно каждому
время явное открытие, выборка и закрытие. Используется, когда SQL-оператор
возвращает более одной строки. Имеет также 4 атрибута
CUR_NAME% ROWCOUNT, CUR_NAME% FOUND, CUR_NAME% NOTFOUND,
CUR_NAME% ISOPEN. Он обрабатывает несколько строк с помощью цикла.
Программист может также передать параметр явному курсору.
declare
cursor emp_cursor
is
select id,name,salary,dept_id
from employees;
v_id employees.id%type;
v_name employees.name%type;
v_salary employees.salary%type;
v_dept_id employees.dept_id%type;
begin
open emp_cursor;
loop
fetch emp_cursor into v_id,v_name,v_salary,v_dept_id;
exit when emp_cursor%notfound;
dbms_output.put_line(v_id||', '||v_name||', '||v_salary||','||v_dept_id);
end loop;
close emp_cursor;
end;