--指向表行的指针,一次一行,一般向前移动 Resultset --游标永远代代表的是一行数据。 /* 使用步骤 第一步:声明游标,就像是声明一个变量样。 游标的关键字就是cursor. Declare --游标关键字在前面 Cursor myCusor is select * from someTable; Begin //代码 End; 第二步:声明游标后并不能直接使用-打开游标 Declare --游标关键字在前面 Cursor myCusor is select * from someTable; Begin Open myCursor; End; 第三步:在遍历中,使用fetch遍历数据 Declare --游标关键字在前面 Cursor myCusor is select * from someTable; Begin Open myCursor; Loop Fetch myCusor into 你声明的变量; --加上一个判断,是否到了行了最后 Exit when myCursor%notfound; End loop; End; 第四步:关闭游标 Declare --游标关键字在前面 Cursor myCusor is select * from someTable; Begin Open myCursor; Loop Fetch myCusor into 你声明的变量; --加上一个判断,是否到了行了最后 Exit when myCursor%notfound; End loop; Close myCursor; - oracle默认情况下,最多只可以开15个游标。 End; */ /* 游标的分类 声明方式: 隐式游标 所有你在执行sql(CRUD)语句时,oracle都会默认的给你打开一个游标。 游标名称叫SQL 它包含以下属性: ROWCOUNT – 这个查询或是修改的记录的数量。 Notfound没有发行现 显式游标 是指用户在declare中显式声明的游标。 动态的游标 */ --隐式的游标 select * from EMP1; /* 30 30 39 200*/ declare v_count int; v_found boolean; begin DELETE from emp1 where age=30; --获取行号 v_count:=sql%rowcount; if not sql%isopen then SYS.DBMS_OUTPUT.PUT_LINE(‘xxxx数‘); end if; DBMS_OUTPUT.PUT_LINE(‘影响行数‘||v_count); end; /* 匿名块已完成 xxxx数 影响行数2 */