select 出的结果必须放入一个或一组变量中

解决方案 »

  1.   

    可以使用但是你必须将得到的结果放在变量中:
    Declare
    v_1 varchar2(1);
    begin
      select 'X' into v_1 from dual;
    end;
      

  2.   

    我指的是使用select *来取一组数据集,而不是某个值
      

  3.   

    declare 
    v_1 table_name%rowtype;
    begin
     select * into v_1 from table_name
    end ;
      

  4.   

    楼上同学是错的,rowtype只能存一条记录,多于一条以上会报错不用游标也可以,create or replace type myobjectype as object (x int,y date,z varchar2(50));--创建可以返回纪录集的函数(不传入表名参数)
    SQL> create or replace function testrerecordnotabname (tableid in number)
      2  return mytabletype
      3  as
      4    l_data mytabletype :=mytabletype();
      5  begin
      6    for i in (select * from a where id>=tableid)  loop
      7      l_data.extend;
      8      l_data(l_data.count) := myobjectype(i.id,i.doctime,i.name);
      9      exit when i.id = 62;
     10    end loop;  
     11    return l_data;     
     12  end;   
     13  /