1、游标的运用:
当select
返回多行数据时。
当在PL/SQL块中执行查询语句(select)和数据操纵语句(DML)式,Oracle会为其在内存中分配上下文区(Context Area),即缓冲区,游标是指向上下文区的指针。对于数据操纵语句和单行select into
语句,Oracle会为他们分配隐含游标。
2、显示游标:
PL/SQL包含隐含游标和显示游标两种游标类型,其中隐含游标用于处理select into
和DML语句,显示游标则专门用于处理select
语句返回的多行数据。
declare
v_dept_id employees.department_id%type :=&请输入部门编号;
v_row employees%rowtype;
begin
select *into v_row from employees s where s.department_id=v_dept_id;
end;
使用显示游标即可解决问题:
declare
v_dept_id employees.department_id%type := &请输入部门编号;
cursor my_cursor is
select * from employees s where s.department_id = v_dept_id;
v_row employees%rowtype;
begin
open my_cursor;
loop
fetch my_cursor
into v_row;
dbms_output.put_line(v_row.salary);
exit when my_cursor%notfound;
end loop;
close my_cursor;
end;
3、隐式游标:
---隐式游标sql:
begin
delete from lanqiao;
if sql%notfound then
dbms_output.put_line('有数据');
end if;
end;