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
다음과 같은 오류 메시지가 표시됩니다.
ERROR: structure of query does not match function result type
DETAIL: Returned type bigint does not match expected type integer in column 1.
CONTEXT: PL/pgSQL function q1(text,integer) line 3 at RETURN QUERY
어떻게 수정합니까?
함수는 하나의 (BIGINT) 열 두 개의 행을 반환합니다. 한 열이 레코드 인 단일 행이 필요합니다. –
맞습니까? 당신은'$ 1' 같은 코드를 temp_field에서 select count (code)를 pattern_number로 만들고 '$ 1과 uoc> $ 2'같은 코드를 temp에서 select count (code)를 uoc_number로 쓰길 원합니까? –
@VaoTsun 예. 그게 정확히 내가 원하는하지만 귀하의 대답은 오류를 해결하지 않는 것 같습니다 –