0

我有一个 postgresql 存储过程,它返回一个整数。当我调用该函数时,返回的结果以函数名作为列名。

例如函数的名称是:“add-person”。调用函数时,列名是“add-person”。

有没有办法让数据库返回带有自选列名的整数?例如“身份证”?

我认为这很容易,但我现在想念森林的树木..

编辑:我想告诉的是返回值是一个变量,如下所示:

CREATE OR REPLACE FUNCTION "scheme"."add-person"(arggivenname character varying, argfamilyname character varying) RETURNS integer AS
$BODY$

DECLARE
  varResponse integer;

BEGIN
-- Operations before

INSERT INTO "scheme"."table"
(
  given_name,
  family_name
)
VALUES
(
  arggivenname,
  argfamilyname
)
RETURNING
  "id"
INTO
  varResponse;

-- Operations after

RETURN varResponse;

END;

$BODY$

LANGUAGE plpgsql VOLATILE COST 100;
4

2 回答 2

2

您可以为此使用 AS 声明。这意味着:

     Select add-person() AS yourcolumnname
于 2015-02-10T12:17:18.213 回答
2

要从函数中获得命名列,需要创建一个并从函数type中返回它type

create type mytype as (mycolumn integer);

create or replace function ri()
returns mytype as $$
select 1;
$$ language sql;

select * from ri();
 mycolumn 
----------
        1

编辑

或者没有type@pozs评论中的创建更简单:

create or replace function ri(out mycolumn integer)
as $$
select 1;
$$ language sql;
于 2015-02-10T12:49:38.987 回答