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