create or replace procedure aa(tt out varchar2) 
as
declare
tt varchar2(100);
t varchar2(10);
cursor cs as select columnA from a ;
begin
fetch cs into t;
exit when cs%notfound;
tt:=tt||','||t;
dbms_output.put_line(tt);
close cs;
end;

解决方案 »

  1.   

    create or replace procedure test(result out varchar2) as
    cursor cur is 
    select a from t;
    temp varchar2(1);
    begin
    open cur;
    loop
    fetch cur into temp;
    result:=result||temp;
    exit when cur%NOTFOUND;
    result:=result||',';
    end loop;
    close cur;
    dbms_output.put_line(result);
    end test;
      

  2.   

    To:
     ORARichard(没钱的日子好难过啊) 
    真是好人..我自己也解决了!!接帖!!
      

  3.   

    我的方法:create or replace function get_code(VAR_FLAG varchar2) return varchar2 is
      p_out varchar2(400);
    -- cursor cur1 is select STCD from WQ_STINFO_B where  instr(','||t_code||',',','||STCD||',')>0;
    cursor cur1 is
      select distinct rtrim(ltrim(ITABB)) as ITABB
              from   WQ_EVGR_E
              where  itabb in 
                    (
                     select COLUMNS_CODE 
                     from   TB_APPRAISE_ITABB 
                     where  smtp='GB3838-2002' 
                     and    COLUMNS_VISIBLE='√' 
                     and    columns_code<>'TPHK'
                     and    FLAG=VAR_FLAG
                    );
     begin
        for cur2 in cur1 loop
           if p_out is null then
            p_out:=cur2.ITABB;
       else
            p_out:=p_out||','||cur2.ITABB;
         end if;
       end loop;
        return p_out;
       end;