你想实现什么?
返回值应该是select .. into .. from ...
返回一个结果集要用游标实现

解决方案 »

  1.   

    set serveroutput on;
    单独运行,不要和函数在一起,你用的是SQL*PLUS吧,这个是SQL*PLUS的命令,不是PL/SQL的。
      

  2.   

    我有一个返回多条纪录的存储过程,我想在java中从这个存储过程接受返回的多条记录 。存储过程中是不是要用游标?在function中return 返回的是不是游标?谁有这方面的例子,能给我看看吗?
      

  3.   

    create or replace function list_betweenand
    (
    ageFrom in number,
    ageTo in number

    as
      v_name poets.name%type;
      cursor c_list is 
        SELECT a.name from poets a,deaths b WHERE a.id=b.id and b.age between ageFrom and ageTo;begin 
       open c_list;
       loop
         fetch c_list into v_name;
        exit when c_list%notfound;
       --你的处理
      END loop;
      
      close c_list;
    end;
       
      

  4.   

    啊,你的函数还没有返回值类型,在函数后加一句:
     
    create or replace function list_betweenand
    (
    ageFrom in number,
    ageTo in number
    ) return varchar2
    as
      v_name poets.name%type;
      cursor c_list is 
        SELECT a.name from poets a,deaths b WHERE a.id=b.id and b.age between ageFrom and ageTo;begin 
       open c_list;
       loop
         fetch c_list into v_name;
        exit when c_list%notfound;
       --你的处理
      END loop;
      
      close c_list;
    end;
      

  5.   

    谢谢给我回复!
    我不是要对选出的每条纪录作处理,我是想得到select返回的多条纪录,然后在JAVA中得到ResultSet.
    而且返回的每条纪录可能是多个字段的。如:select id,name from poets;
      

  6.   

    create or replace function list_early_deaths
    (
    ageFrom in number,
    ageTo in number
    ) return refcursor is
    toesup refcursor;
    begin 
    open toesup for SELECT a.name,b.age from poets a,deaths b WHERE a.id=b.id and b.age between ageFrom and ageTo;
    return toesup;
    end list_early_deaths; 
    /提示错误:function已经创建了,但是有编译错误。