Есть много 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 междунар , имя текста );