首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在PLSQL中释放游标?

如何在PLSQL中释放游标?
EN

Stack Overflow用户
提问于 2014-10-24 23:09:37
回答 2查看 4.7K关注 0票数 4

我在Server和Oracle上都编码。

当我在Server中编码时,我使用了以下内容:

代码语言:javascript
复制
OPEN curUSERS;
CLOSE curUSERS;
DEALLOCATE curUSERS;

现在,当我在Oracle中编码时,我使用了以下内容:

代码语言:javascript
复制
OPEN curUSERS;
CLOSE curUSERS;

我在PL/SQL中看到了一个DEALLOCATE关键字,但是当我使用这个语句时

代码语言:javascript
复制
DEALLOCATE(curUSERS);

它抛出一个错误。我如何在PL/SQL中做同样的事情(去分配)?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-10-24 23:34:38

Oracle不需要显式地释放游标的内存。只要CLOSE(cursor)就行了。

票数 10
EN

Stack Overflow用户

发布于 2014-10-25 03:54:57

应尽可能避免显式游标。显式游标需要更多代码,而且速度较慢,因为它们不会自动批量收集。用于循环的游标简单且快速。

样例模式

代码语言:javascript
复制
drop table table1;
create table table1 as select 1 a from dual;

显式游标-更多代码,性能较差的

代码语言:javascript
复制
declare
    v_a number;
    cursor table1_cursor is select a from table1;
begin
    open table1_cursor;
    loop
        fetch table1_cursor into v_a;
        exit when table1_cursor%notfound;
        dbms_output.put_line(v_a);
    end loop;
    close table1_cursor;
end;
/

用于无循环代码的游标,性能更好的

代码语言:javascript
复制
begin
    for table1_rows in (select a from table1)
    loop
        dbms_output.put_line(table1_rows.a);    
    end loop;
end;
/
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26557564

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档