declare
c is test%rowtype;
my_cursor cursor;
begin
open my_cursor for select * from test;
loop
fetch my_cursor into c;
exit when my_cursor %notfound;
end loop;
close my_cursor;
end;

解决方案 »

  1.   

    表a 就一个字段  name varchar类型怎么写一个存储过程把a中的记录都读出来呢
      

  2.   

    读出所有的name,楼主想要干什么啊?insert、update 时可以不用游标,写成select name  from a 就可以了(不可以distinct) 
    不过觉得还是 xjqqxjqq(JAI) 那样写游标的调用方便些啦!
    只要数据量不是很具大的,做游标没有什么不好吧?
      

  3.   

    第一楼写的我看不懂,十分惭愧,可否再给一个例子,完全是按表a 来做,我的表a 只有一个 name 字段
      

  4.   

    你可以先在包中定义一个游标变量.
    如:
    CREATE OR REPLACE PACKAGE pkg_cursor 
    as
    type return_result is ref cursor;
    end;
    /
    然后在存储过程中调用游标变量,返回select结果集.
    create or replace procedure pro_name
    (v_cursor   out pkg_cursor.reture_result)
    begin
     open v_cursor for
       select * from table_name;
    end pro_name;
    /