procedure query_tb
(
  v_in varchar2,
  v_out varchar2
)is 
  v_temp varchar2(2);
  v_value varchar2(8);begin
  v_value:='';
  cursor c_tb is select field2 from tb where field1=v_in;
  open c_tb;
  loop
  fetch c_tb into v_temp;
  exit when c_tb%notfound;
  v_value:=v_value||v_temp;
  end loop;
  close c_tb;
  v_out:=v_value;
end;

解决方案 »

  1.   

    create function getField2s( searchF1 varchar2 ) RETURN varchar2 
    IS
    CURSOR c1( f1 varchar2 ) IS select field2 from tb where field1 = f1 ;
    lineVar tb.field2%TYPE ; 
    retStr varchar2( 2000 ) ;
    BEGIN
      retStr := '' ;   OPEN c1( searchF1 ) ;
      LOOP 
        FETCH c1 INTO lineVal; 
        EXIT WHEN c1%NOTFOUND ;
        retStr = retStr || lineVar ;  
      END LOOP ;
      CLOSE c1 ;   RETURN( retStr ) ;
    END ;