PostGIS와 저장 프로 시저의 반환 형식

이 많은 PostgreSQL을 저장 프로 시저는 자신의 사용을 통해 사전에 기록 된 값을 반환하고, 천천히 확장

1, 형상은 PostgreSQL을 지원 어떤 유형이 될 수 있습니다 유형 유형 (정수 / 텍스트 / 문자가 다양한 .....)

CREATE  OR  REPLACE  FUNCTION의 테스트를 ( 
    TBL의 캐릭터가  변화 )
   RETURNS 형상을 그대로 
$ BODY $가   
선언   
    v_res 형상을; - 最终结果
시작 
    반환 v_res을;  
;  
$ BODY의 $의 
  언어의 plpgsql 휘발성 엄격한 
  비용 (100) ;
ALTER  기능의 테스트를 ( 문자  변화 ) 
  OWNER TO 포스트 그레스;

2, 테이블 형식, 반환 데이터 세트는 수익을 정의하는 것은 자신의 필드 복귀와 여기에 선택 쿼리 실행 반환을 필요로

CREATE  OR  REPLACE  FUNCTION의 (테스트
     IN TBL의 캐릭터  변화 )
   RETURNS  TABLE (v_gid 정수 형상을 v_res) AS 
$ BODY $가   
선언   
시작  
    - 执行返回结果
    반환 쿼리
     선택 v_uptap_gid  res_uptap_gid, v_uptap_geom res_uptap_geom;
;  
$ BODY의 $의 
  언어 plpgsql 휘발성 엄격한 
  비용 100 
  ROWS 1000 ;
ALTER  FUNCTION의 (테스트캐릭터  변화 ) 
  OWNER TO 포스트 그레스;

3, SETOF 테이블 / 뷰 모델은, 데이터 세트에 반환 반환 된 데이터는 일반적으로 테이블 룩업 인

하지만, 새로운 필드가하지 않을 테이블의 기존 필드해야합니다 (예를 들어, 내가 유형 식별 할 '유형을 선택합니다가. * TB A에서'반환시)

편리한 장소 복귀 력 필드 (수있다 'TB SELECT *')를 정의하지

CREATE  OR  REPLACE  FUNCTION의 (테스트
     IN TBL의 캐릭터  변화 )
   RETURNS SETOF의 표 AS 
$ BODY의 $의   
선언이   
시작  
    SELECT  *을  에서 표; 
    - 或者
    반환 쿼리는 선택  *  에서 표를;
;  
$ BODY의 $의 
  언어 plpgsql 휘발성 엄격한 
  비용 100 
  ROWS 1000 ;
ALTER의  기능의 테스트 ( 캐릭터가  변화 ) 
  OWNERTO 포스트 그레스;

데이터 세트를 기록 입력 SETOF (3)는 상기 SETOF 나타난 유사한 반환

차이점은 사람들이 필드를 취할 요구, 내가 기록의 모든 필드 SETOF 반환 할 수있다

CREATE  OR  REPLACE  FUNCTION의 (테스트
     IN TBL의 캐릭터  변화 )
   RETURNS SETOF 기록 AS 
$ BODY의 $의   
선언   
R 레코드를; 
시작  
    에 대한 연구 에서  EXECUTE  ' TB SELECT * FROM '   루프
        반환  다음 R;
    결국 루프;
    반환 ;
;  
$ BODY의 $의 
  언어 plpgsql 휘발성 엄격한 
  비용 100 
  ROWS 1000 ;
ALTER의  기능테스트 ( 문자는  변화 ) 
  OWNER TO 포스트 그레스; 

- 调用
선택  *  에서 테스트 ( ' TB ' )   과 같은 부재 (아이디 INT , 이름 텍스트 );

 

추천

출처www.cnblogs.com/giser-s/p/11656004.html