create or replace procedure proc_test_cursor is
userRow test%rowtype;
cursor userRows is
select * from test;
begin
for userRow in userRows loop
dbms_output.put_line(userRow.id||’,'||userRow.Name||’,'||userRows%rowcount);
end loop;
end proc_test_cursor;
这是我在网上看到的例子 我用到存储过程中后 我同事说没释放 我对这块 也不是很清楚我也觉得要释放 可是网上的例就没有释放 请教大家 需不需要释放 要释放的话该怎么释放
你的意思 关闭游标 里面的数据就没啦 只不过里面的结构还有是吗
在处理完游标中数据之后必须关闭游标来释放数据结果集和定位于数据记录上的锁。close 语句关闭游标,但不释放游标占用的数据结构。如果准备在随后的使用中再次打开游标,则应使用close 命令。其关闭游标的语法规则为:
close { { [global] cursor_name } | cursor_variable_name }
在使用游标时,各种针对游标的操作或者引用游标名,或者引用指向游标的游标变量。当close 命令关闭游标时,并没有释放游标占用的数据结构。因此常使用deallocate 命令。通过该命令可以删除掉游标与游标名或游标变量之间的联系,并且释放游标占用的所有系统资源。其语法规则为:
deallocate { { [global] cursor_name } | @cursor_variable_name}