游标cursor_1

游标的定义:A cursor is a pointer to private memory area allocated by the Oracle Server.
也就是说游标是指向由oracle服务器分配的私有的内存空间。
游标有两种类型:隐式游标显式游标
我们知道,当我们写一个pl/sql块的时候,使用into这个关键字就可以将值传送到定义好的变量中,
并且一个into只可以传递一个值,如果我们现在要从hr用户的employees表中删除满足特定条件的
记录,如何知道删除了多少条记录呢,这时候我们就可以使用隐式游标的属性了:
SQL%FOUND  这是一个布尔数据类型,如果满足条件的记录至少有一条的话,就会返回TRUE。
SQL%NOTFOUND 这也是一个布尔数据类型,当没有一条记录满足条件的时候,就会返回TRUE。
SQL%ROWCOUNT 这是一个整型数据类型,会返回满足条件的记录的条数。
下面这个pl/sql块就是利用SQL%ROWCOUNT来得到删除的记录数:(为了保证employees表的完好,使用create table emp as select * from employees.来创建emp表,在emp上进行操作。)
DECLARE
      v_rows_deleted VARCHAR2(30);
      v_empno emp.employee_id%TYPE :=177;
BEGIN
      DELETE FROM emp
      WHERE employee_id=v_empno;
      v_rows_deleted :=(SQL%ROWCOUNT||'row deleted.');
      DBMS_OUTPUT.PUT_LINE(v_rows_deleted);
END;
/

HR@orcl 18-SEP-14>set serveroutput on
HR@orcl 18-SEP-14>@cursor
1row deleted.

PL/SQL procedure successfully completed.



请使用浏览器的分享功能分享到微信等