PostGIS хранимая процедура возврата типа

Есть много Postgresql хранимой процедуры возвращает значение, которое записывается заранее только через собственное использование, и постепенно расширяться

1, Тип, где геометрия может быть любым типом поддержки POSTGRESQL (целое / текст / символ различной .....)

CREATE  OR  REPLACE  FUNCTION тест ( 
    TBL характер  изменения )
   ВОЗВРАТ геометрию КАК 
$ ТЕЛО $   
объявить   
    v_res геометрию; - 最终结果
начать 
    возвращение v_res;  
конец ;  
$ BODY $ 
  LANGUAGE plpgsql VOLATILE STRICT 
  COST 100 ;
ALTER  FUNCTION тест ( характер  изменения ) 
  OWNER TO Postgres;

2, тип таблицы, набор возвращаемых данных, определить возврат необходимо свое собственное поле, здесь выберите возвращается выполнение запроса с возвращением

CREATE  OR  REPLACE  FUNCTION тест (
     В TBL характера  изменения )
   ВОЗВРАТ  TABLE (v_gid целого числа , v_res геометрии) КАК 
$ ТЕЛО $   
объявить   
начать  
    - 执行返回结果
    возврата запрос
     выбор v_uptap_gid , как res_uptap_gid, v_uptap_geom как res_uptap_geom;
конец ;  
$ BODY $ 
  LANGUAGE plpgsql VOLATILE STRICT 
  COST 100 
  РЯДЫ 1000 ;
ALTER  FUNCTION тест (характер  изменения ) 
  OWNER TO Postgres;

3, setof стола / вид модели, возвращается к набору данных, возвращаемые данные, как правило, таблица поиск

Но он должен быть существующим полем в таблице, новое поле не будет делать (например, я хочу, чтобы определить тип «выберите тип, а. * От Т.Б.» после возвращения)

Удобное место не определено поле обратной силы ( «select * from Тб» может быть)

CREATE  OR  REPLACE  FUNCTION тест (
     IN TBL характер  изменения )
   ВОЗВРАТ SETOF table1 AS 
$ BODY $   
заявляют   
начать  
    ВЫБЕРИТЕ  *  из table1; 
    - 或者
    возвращение запроса выберите  *  от table1;
конец ;  
$ BODY $ 
  LANGUAGE plpgsql VOLATILE STRICT 
  COST 100 
  РЯДЫ 1000 ;
ALTER  FUNCTION тест ( характер  изменения ) 
  ВЛАДЕЛЕЦК Postgres;

3, setof записи типа А набор данных возвращается, аналогично таблице setof

Разница заключается в том, что я могу вернуться setof рекордных всех полей, призывая человек выйти на поле

CREATE  OR  REPLACE  FUNCTION теста (
     В TBL характера  изменения )
   ВОЗВРАТ SETOF записи AS 
$ ТЕЛА $   
объявить   
г запись; 
начинают  
    для г в  EXECUTE  « выберите * от туберкулеза »   петли
        возврата  следующего г;
    конец цикла;
    вернуться ;
конец ;  
$ BODY $ 
  LANGUAGE plpgsql VOLATILE STRICT 
  COST 100 
  РЯДЫ 1000 ;
ALTER  FUNCTIONтест ( характер  изменения ) 
  ВЛАДЕЛЕЦ TO Postgres; 

- 调用
выберите  *  из теста ( ' ТБ ' )   в качестве члена (ID междунар , имя текста );

 

рекомендация

отwww.cnblogs.com/giser-s/p/11656004.html
рекомендация