一連のレコードを返す PL/pgSQL ストアド プロシージャを作成しています。各レコードには、既存のテーブルのすべてのフィールドが含まれています (Retailer と呼びます。このテーブルには、retailer_key と Retailer_name の 2 つのフィールドがあります)。もちろん、これは機能します:
CREATE FUNCTION proc_Find_retailers
(IN p_Store_key INT)
RETURNS SETOF Retailer
AS $$ ...`
ここで、返された各レコードの「最後」に追加の 2 つのフィールドを返すように 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 個のフィールド (この例では 2 つではありません) があるため、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 $$ ...