我試圖將動態查詢結果轉換爲json
,然後返回該json
作爲此函數的結果(這是一個簡化版本,我的實際代碼中的WHERE
子句是相當長的時間)。將動態查詢的結果轉換爲json
CREATE OR REPLACE FUNCTION get_data_as_json(tbl regclass, p_version_id integer)
RETURNS json AS $$
BEGIN
RETURN to_json(EXECUTE 'SELECT * FROM '|| tbl
|| ' WHERE version_id = p_budget_version_id');
END;
$$ LANGUAGE plpgsql;
但是,此代碼導致type "execute" does not exist
錯誤。
如何運行動態查詢,然後將結果轉換爲JSON?
檢查http://hashrocket.com/blog/posts/faster-json-generation-with-postgresql - 不是「選擇array_to_json(ARRAY_AGG(row_to_json(T )))「例子你在找什麼? – Leo
這並不考慮問題的動態部分(但「array_to_json(array_agg(row_to_json)」可能有幫助。謝謝!) – RodeoClown
爲動態部分,你不必使用返回查詢嗎?請參閱http:///stackoverflow.com/questions/7945932/how-return-result-of-a-select-inside-a-function-in-postgresql – Leo