這些都是提供給我PostgreSQL函數
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)列兩行。你想要一行記錄的單個列。 –
我做對了嗎?你需要'從temp中選擇count(代碼),其中代碼像$ 1'那樣作爲pattern_number並且'選擇count(代碼)從臨時代碼像$ 1和uoc> $ 2'那樣的uoc_number?..我用代碼添加了答案 - sic? –
@VaoTsun是的。這正是我想要的,但你的答案似乎不能解決錯誤 –