所以我有這個功能:
create function report (varchar)
returns table (
id bigint,
src_data_system_id int8
)
language plpgsql
as $$
begin
return query
select id, src_data_system_id from process_log_objects plo
where src_data_system_name = 'somecondition'||$1;
end $$
如果在returns塊中我使用與函式體中的選擇查詢相同的列名,那么當我這樣做時會select * from report('dict_day');出現錯誤
ERROR: column reference "id" is ambiguous
Detail: It could refer to either a PL/pgSQL variable or a table column.
如何從此查詢回傳原始列名?
預先感謝!
uj5u.com熱心網友回復:
您必須使用表名限定列:
RETURN QUERY
SELECT plo.id, plo.src_data_system_id FROM process_log_objects plo
...
為避免此類問題,最好為函式使用不同的引數名稱。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/476015.html
標籤:PostgreSQL
