create or replace procedure prc
AS
sqlstr varchar2(3000);
type resultcur is ref cursor;
begin
sqlstr := ‘select * from table名 where 条件’;
open resultcur for sqlstr;  ---此处报错
......
end prc;Compilation errors for PROCEDURE PRC
Error: PLS-00330: invalid use of type name or subtype name
Line: 148
Text: open resultcur for sqlstr;请问大侠们,这是什么错误,怎么解决,请赐教!

解决方案 »

  1.   

    -- 给个例子给你,自己看着办吧:-----------------------------------------------------------------------------
    create or replace package pkg_emp_info
    as
      type myrctype is ref cursor;
      procedure emp_info_proc(v_empno in number default 0,v_ename in VARCHAR2, v_deptno number default 0,p_rc out myrctype);
    end pkg_emp_info;
    /create or replace package body pkg_emp_info
    as
       procedure emp_info_proc(v_empno in number default 0,v_ename in VARCHAR2, v_deptno number default 0,p_rc out myrctype)
       is
       sqlstr VARCHAR2(2000);
       begin   sqlstr :=
       'SELECT  * from emp e where 1=1';    if v_empno<>0 then
          sqlstr := sqlstr||' and e.empno='||v_empno;
        end if;    if v_ename<>'' then
          sqlstr := sqlstr||' and e.ename like ''%||v_ename||%''';
        end if;    if v_deptno<>0 then
          sqlstr := sqlstr||' and e.deptno='||v_deptno;
        end if;    sqlstr := sqlstr||' ORDER BY e.empno ';    OPEN p_rc FOR sqlstr;-- USING v_mobile; --,v_fromDate,v_fromDate,v_toDate,v_toDate,v_sign,v_sign;   end emp_info_proc;
    end pkg_emp_info;
    /
      

  2.   

    create or replace procedure prc
    AS
    sqlstr varchar2(3000);
    type resultcur is ref cursor;
    l_cursor resultcur ;
    begin
    sqlstr := 'select * from table名 where 条件';
    open l_cursor for sqlstr; ---此处报错
    ......
    end prc;