我想用java取整张表的数据,用过程取 效果跟 select * from emp 一样  过程该怎么写?
create or replace procedure usp_test as
cursor cu is select * from emp;
v_row emp%rowtype;
beginopen cu;
loop 
     fetch cu into v_row;
      exit when cu%notfound;
     dbms_output.put_line(v_row.empno||' '||v_row.ename); 
end loop;
close cu;
end;
我是这样写的  有什么不对

解决方案 »

  1.   

    --取整张表要返回一个游标,然后在JAVA中处理这个数据集
    CREATE OR REPLACE PROCEDURE get_emps(o OUT SYS_REFCURSOR) IS
    BEGIN
      OPEN o FOR
        SELECT * FROM emp;
    END;
      

  2.   

    create or replace function usp_test  
    RETURN SYS_REFCURSOR 
    is
    mycur  sys_refcursor;
    begin
    open mycur for select * from all_tables; 
    return mycur;
    end;你可以这样写。
      

  3.   


    必须要返回一个 cursor 吗 、?
      

  4.   

    还有其它方法,这个最方便常用。  你也可以定义一个record或数组返回。
      

  5.   

    用过程就必须返回游标,否则无法提取数据,其实select * from emp也是通过游标返回的数据