1
我試圖創建下面的代碼的存儲過程:結構查詢不匹配的結果類型
CREATE OR REPLACE FUNCTION public.get_paycheck(empl_id varchar, lmt integer, offst integer)
RETURNS TABLE(
request_id varchar
, nip varchar
, email varchar
, request_date timestamp with time zone
, salary_month date
, salary_year float
, status integer
, created_time timestamp with time zone)
language plpgsql stable
as $function$
BEGIN
return query
select
trp.request_id
,e.nip
,trp.email
,trp.request_date
,trp.salary_month
,date_part('year', trp.salary_month)
,trps.status
,trps.created_time
from tr_request_paycheck trp
join tr_request_paycheck_status trps on trps.request_id = trp.request_id
join ms_empl e on e.empl_id = trp.empl_id
where case
when $1 is not null and $1 <> '' then trp.empl_id = $1
else true
end
group by 1,2,3,4,5,6,7,8
LIMIT $2
OFFSET $3;
end;
$function$;
每當我執行它,我得到一個錯誤
結構查詢不匹配的結果類型
即使我匹配我的表中的所有類型。
任何人都可以幫我解決這個問題嗎?
需要查看正在使用的表/列的ddl。在選擇。此外,如果返回的所有值都爲null,則可能需要顯式將一個或多個列轉換爲所需的數據類型。將年份存儲爲浮動看起來很奇怪。 date_part年似乎不會返回float數據類型..它不會返回;它返回類型雙精度。也似乎奇怪的是,工資月將是一個日期數據類型... – xQbert
http://imgur.com/a/xVgOJ第一個表和第二個http://imgur.com/a/GVImk – PinballWizard
我剛纔意識到數據類型created_time是不同的,它假設是時間戳,而不是時間 我是否正確? – PinballWizard