我正在编写一个 PL/pgSQL 存储过程,它将返回一组记录;每条记录都包含现有表的所有字段(称为零售商,它有两个字段:retailer_key 和retailer_name)。当然,这有效:
CREATE FUNCTION proc_Find_retailers
(IN p_Store_key INT)
RETURNS SETOF Retailer
AS $$ ...`
现在我想更新 sp 以便它在每个返回记录的“末尾”返回两个额外的字段。我可以做一些事情,例如:
CREATE FUNCTION proc_Find_store
(IN p_Store_key INT)
RETURNS TABLE (
retailer_key int,
retailer_name varchar(50),
addl_field_1 int,
addl_field_2 double precision)
AS $$ ...
在现实世界中,我的 Retailer 表有 50 个字段(不是我的示例中的两个),因此在 RETURNS TABLE 子句中枚举所有这些字段很乏味。是否有任何捷径,所以我可能会说这样的话(我意识到我在这里编造的东西在语法上是非法的,但我这样做是为了给你我正在寻找的东西的味道):
CREATE FUNCTION proc_Find_store
(IN p_Store_key INT)
RETURNS (SETOF Store,
addl_field_1 int,
addl_field_2 double precision)
AS $$ ...