postgresql - PostgreSQL 函数类型重用
问题描述
我有一个函数,它返回一个表。我需要另一个函数来继承相同的输出类型,如下所示:
CREATE OR REPLACE FUNCTION t_report (pMedia text[])
RETURNS TABLE (
media text) AS
$func$
DECLARE
sql text;
BEGIN
sql := 'SELECT
tStreams.Media
FROM
(SELECT
''Audio'' as Media
UNION ALL
SELECT
''Video'' as Media
UNION ALL
SELECT
''App Sharing'' as Media) tStreams
WHERE tStreams.Media in (select unnest($1))';
RETURN QUERY EXECUTE sql
USING pMedia
;
END
$func$ LANGUAGE plpgsql;
CREATE OR REPLACE FUNCTION t_report (pMedia text)
RETURNS TABLE (
media text) AS
$func$
BEGIN
RETURN QUERY EXECUTE 'SELECT * FROM t_report(ARRAY[$1])' USING pMedia
;
END
$func$ LANGUAGE plpgsql;
SELECT *
FROM t_report('Audio');
这很好用,但我需要第二个函数从第一个函数继承类型。是否可以直接进行,或者我需要创建特定类型并将其作为 RETURNS SETOF MyType 放入?
解决方案
推荐阅读
- node.js - 团队扩展引发 UnhandledPromiseRejectionWarning 错误:BotFrameworkAdapter.processActivity():501 错误
- regex - 使用正则表达式检测类似 sql 的查询
- ruby-on-rails - 使用 caprover 将 Rails 应用程序部署到 digitalocean
- javascript - JS/TS 功能仅在为一个用户清除浏览器缓存后才有效,但在刷新页面后它停止工作 - ASP NET MVC 应用程序
- reactjs - Hooks 不支持第二个回调参数
- python - 将对齐输出从 format_alignment (Biopython) 转换为图像
- javascript - AWS - 如何使用 Socket.io 连接到特定端口?
- python - 如何正确(重新)解释编码文本?
- android-studio - Bug NavigationDrawer 和 SlidesTabs
- sql - 使用 SUM 时出错:聚合可能不会出现在 UPDATE 语句的集合列表中