Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql 如何在postgres中声明函数外部的函数结果类型_Postgresql - Fatal编程技术网

Postgresql 如何在postgres中声明函数外部的函数结果类型

Postgresql 如何在postgres中声明函数外部的函数结果类型,postgresql,Postgresql,我在postgres中有两种形式的相同函数(见下文),它们都返回相同类型的“表”结果集。它们的定义方式并不简单(不要重复),有没有一种方法可以只声明一次结果集 CREATE OR REPLACE FUNCTION validation_report(_accession text) RETURNS TABLE ( accession VARCHAR, peptide VARCHAR, modified_sequence VARCHAR, var

我在postgres中有两种形式的相同函数(见下文),它们都返回相同类型的“表”结果集。它们的定义方式并不简单(不要重复),有没有一种方法可以只声明一次结果集

CREATE OR REPLACE FUNCTION validation_report(_accession text)
  RETURNS TABLE (
      accession VARCHAR,
      peptide VARCHAR,
      modified_sequence VARCHAR,
      var_mod text,
      spectrum_title VARCHAR,
      confidence real,
      precursor_mz_error real,
      sample_name  text,
      transcript  text,
      gene_symbol  VARCHAR,
      prot_seq  text
  ) AS
$func$
BEGIN

   RETURN query select * from validation_report(array[_accession]);
END
$func$  LANGUAGE plpgsql;


CREATE OR REPLACE FUNCTION validation_report(_accession text[])
  RETURNS TABLE (
      accession VARCHAR,
      peptide VARCHAR,
      modified_sequence VARCHAR,
      var_mod text,
      spectrum_title VARCHAR,
      confidence real,
      precursor_mz_error real,
      sample_name  text,
      transcript  text,
      gene_symbol  VARCHAR,
      prot_seq  text
  ) AS
$func$
BEGIN

   RETURN QUERY ..the query..

END
$func$  LANGUAGE plpgsql;

如果函数对特定表进行查询,则可以尝试返回复合类型或使用
返回SETOF table_name
。如果没有,您可以创建一个表/类型来定义返回类型

请参见此处的
SETOF
示例: