本帖最后由 catlikepanda 于 2009-11-14 15:30:56 编辑

解决方案 »

  1.   

    call ppp(one); 去掉call结果集用REFCURSOR返回就可以了。
      

  2.   

     select * from temp where tid=1; 
    返回的数据有多条?
    如果只返回一条
    用 select * from temp where tid=1 and rownum <2; 试试
      

  3.   


    set serveroutput on;
    --调用 
    declare 
        one temp%rowtype; 
    begin 
        ppp(one); 
        dbms_output.put_line(one.tid); 
        dbms_output.put_line(one.tname); 
    end; 
      

  4.   

    (1)我想通过这个存储过程返回一行数据,可老是有报错,以上语句错哪儿了?如果想得到返回的一行数据应该怎么做?
    解:call ppp(one); 调用的时候去掉call 执行使用ppp(one)(2)如何通过游标返回一个结果集? 
    在sqlplus中建立如下的内容:
    1、程序包SQL> create or replace package types
      2  as
      3      type cursorType is ref cursor;
      4  end;
      5  /程序包已创建。2、函数
    SQL> create or replace function sp_ListEmp return types.cursortype
      2  as
      3      l_cursor    types.cursorType;
      4  begin
      5      open l_cursor for select id, title from cf_news order by id;--表的名字
      6      return l_cursor;
      7  end;
      8  /函数已创建。3、过程SQL> create or replace procedure getemps( p_cursor in out types.cursorType )
      2  as
      3  begin
      4        open p_cursor for select id, title from cf_news order by id;--表的名字
      5  end;
      6  /过程已创建。