create or replace procedure hh(cc out sys_refcursor)
as 
begin
open cc for select * from emp;
dbms_output.put_line('数据存入游标');
end hh;就像这个过程怎么调用啊!
除了把这个游标循环插入到临时表里还有别的方法吗?
求大仙指教

解决方案 »

  1.   

    一般很少这儿写吧,倒不如写一个函数,返回sys_refcursor传入表名作为参数
    select func_name(table_name) from dual;
      

  2.   


    CREATE PACKAGE emp_data AS  
       TYPE empcurtyp IS REF CURSOR  
          RETURN emp%ROWTYPE;  
      
       PROCEDURE open_emp_cv( emp_cv IN OUT empcurtyp );  
    END emp_data;  
      
    CREATE OR REPLACE PACKAGE BODY emp_data AS  
       PROCEDURE open_emp_cv( emp_cv IN OUT empcurtyp ) IS  
          each_emp   emp%ROWTYPE;  
       BEGIN  
          OPEN emp_cv FOR  
             SELECT *  
             FROM   emp  
             WHERE  ename LIKE 'A%';  
       END open_emp_cv;  
    END emp_data;  更多参考:
    PL/SQL 游标变量