CREATE OR REPLACE FUNCTION get_ehr_inv(inv character varying,bme character varying,epi character varying)
RETURNS TABLE(
v_invjson text
)
AS $$
BEGIN
RETURN QUERY
select REPLACE(array_to_string(array_agg(finaldata), ','),'"]','')::text v_invjson from (
select rownum||') '||split_part(invsplitdata,'^',6) as finaldata from (
select regexp_split_to_table(invdata,'",') as invsplitdata from (
select json_data::json ->> 'InvTestCodeToPrint' as invdata
from num_json where hrgnum_puk = inv and hrgnum_visit_no = bme and hrgnum_episode_code = epi ORDER BY gdt_entry_date desc limit 1)));
END;
$$ LANGUAGE 'plpgsql'
不是要像这样编写函数,而是要在包中编写函数并调用包以获取结果。