ORACLE隐式游标与显式游标有何区别?

解决方案 »

  1.   

    隐式游标是Oracle为所有操纵语句(包括只返回单行数据的查询语句)自动声明和操作的一种游标,显式游标是由用户声明和操作的一种游标。
    显式游标操作过程主要包括:声明游标,打开游标,提取游标,关闭游标。
    声明格式:
    CURSOR cursor_name[(arg1 arg1_datatype[,arg2 arg2_datatype]...)]
      [RETURN return_datatype]
       select statement;
    打开格式:
     OPEN cursor_name[(arg1 arg1_datatype [,arg2 arg2_datatype]...)];
    提取格式:
     fetch CURSOR_NAME into {VARIABLE_LIST|RECORD_VARIABLE};
    关闭格式:
     CLOSE cursor_name;Oracle为每一个不属于显示游标的DML语句都创建一个隐式游标。隐式游标的名称是SQL.不能对SQL游标显式地执行OPEN,FETCH,CLOSE语句。Oracle隐式地打开,提取,关闭SQL游标。
    隐式例子:(通过访问SQL游标的%ROWCOUNT属性来了解修改了多少行)
    SQL> get e:\myplsql\curexp2.txt
    1 DECLARE
    2    v_rows NUMBER;
    3 BEGIN
    4    UPDATE emp SET comm=1000 WHERE deptno=10;
    5    v_rows:=SQL%ROWCOUNT;
    6    DBMS_OUTPUT.PUT_LINE('给部门10的'||v_rows||'个雇员每人加了100元补助');
    7*END;
    SQL>/
    给部门10的3个雇员每人加了100元补助
    选自《 Oracle 10g宝典》呵呵,我是初学者第一次发帖,只会照搬资料:)不好意思啊。