我需要創建一個函數,該函數將運行查詢並返回結果,其中表名和列名是賦予該函數的參數。我目前有這樣的:Postgres動態查詢函數
CREATE OR REPLACE FUNCTION qa_scf(tname character varying, cname character varying)
RETURNS SETOF INT AS
$BODY$
BEGIN
RETURN QUERY SELECT * FROM tname WHERE cname !='AK' AND cname!='CK';
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100
ROWS 1000;
這給了我錯誤「關係」tname'不存在「運行時。我是新的功能創建Postgres,所以任何幫助表示讚賞。我覺得返回int是錯的,但我不知道還有什麼可以讓它返回返回行的所有列。謝謝!
我該如何聲明result_var爲? –
切勿在不使用適當的quote_FOO()函數的情況下將值插入動態sql語句中,否則您會打開注入攻擊的大門。 – dbenhur
這是一個面向內部的數據庫。 –