Oracle ref 游标

CREATE   OR   REPLACE   FUNCTION  GetAreaCdStr(cmpyCd  IN   varchar2 RETURN   VARCHAR2   AS
  TYPE REFCURSOR 
IS  REF  CURSOR ;
  AREA_COR  REFCURSOR;
  areaCdStr 
VARCHAR2 ( 500 );
  areaCd    
VARCHAR2 ( 3 );
BEGIN
  
OPEN  AREA_COR  FOR
    
SELECT   DISTINCT  AREA_CD  FROM  T_AREA_M  WHERE  CMPY_CD  =  cmpyCd  ORDER   BY  AREA_CD;
  LOOP
    
FETCH  AREA_COR  INTO  areaCd;
    
EXIT   WHEN  AREA_COR % NOTFOUND;
    
BEGIN
      areaCdStr :
=  areaCdStr  ||  areaCd  ||   ' , ' ;
    
END ;
  
END  LOOP;
  
CLOSE  AREA_COR;
  
RETURN  areaCdStr;
END ;

调用:
SELECT  T.CMPY_CD, T.CMPY_NM, GETAREACDSTR(T.CMPY_CD)  AS  AREACDSTR
  
FROM  T_CMPY_M T
 
ORDER   BY  T.CMPY_CD

你可能感兴趣的:(Oracle ref 游标)