【发布时间】:2017-09-29 19:22:29
【问题描述】:
这些是提供给我的类型定义
create type IR as (pattern_number integer, uoc_number integer);
我目前的进度是:
create or replace function q1(pattern text, uoc_threshold integer)
returns setof IR
as $$
BEGIN
RETURN QUERY
select count(code) from temp where code like $1;
RETURN QUERY
select count(code) from temp where code like $1 and uoc > $2;
END;
$$ language plpgsql;
我的输出需要是这样的: 查询:-
select *
from q1('ECO%', 6);
pattern_number | uoc_number
80 | 5
我收到一条错误消息:
错误:查询结构与函数结果类型不匹配
详细信息:返回的类型 bigint 与第 1 列中的预期类型整数不匹配。
上下文:PL/pgSQL 函数 q1(text,integer) 第 3 行的 RETURN QUERY
我该如何解决这个问题?
【问题讨论】:
-
您的函数返回两行和一个 (bigint) 列。您需要单行和单列作为记录。
-
我说对了吗?你想要
select count(code) from temp where code like $1作为 pattern_number 和select count(code) from temp where code like $1 and uoc > $2作为 uoc_number 吗?.. 我用代码添加了答案 - 原文如此? -
@VaoTsun 是的。这正是我想要的,但您的回答似乎无法解决错误
标签: sql postgresql plpgsql