重構(gòu)PL/pgSQL函數(shù)以返回各種SELECT查詢的輸出我編寫了一個輸出PostgreSQL的函數(shù)SELECT查詢格式良好的文本形式?,F(xiàn)在我不想輸出文本了,但實際上運(yùn)行生成的SELECT語句并返回結(jié)果-就像查詢本身一樣。到目前為止我所擁有的是:CREATE OR REPLACE FUNCTION data_of(integer)
RETURNS text AS$BODY$DECLARE
sensors varchar(100); -- holds list of column names
type varchar(100); -- holds name of table
result text; -- holds SQL query
-- declare more variablesBEGIN
-- do some crazy stuff
result := 'SELECT\r\nDatahora,' || sensors ||
'\r\n\r\nFROM\r\n' || type ||
'\r\n\r\nWHERE\r\id=' || $1 ||'\r\n\r\nORDER BY Datahora;';
RETURN result;END;$BODY$LANGUAGE 'plpgsql' VOLATILE;ALTER FUNCTION data_of(integer) OWNER TO postgres;sensors保存表的列名列表。type..這些都是在職能過程中申報和填寫的。最終,他們持有的價值觀如下:sensors: 'column1, column2, column3'除了Datahora (timestamp)所有列都是類型的double precision.type :'myTable'可以是四個表之一的名稱。每個列都有不同的列,但公共列除外。Datahora.底層表的定義.變量sensors將舉行全中相應(yīng)表的列顯示在此處。type..例如:如果type是pcdmet然后sensors將是'datahora,dirvento,precipitacao,pressaoatm,radsolacum,tempar,umidrel,velvento'變量用于構(gòu)建SELECT中存儲的語句。result..比如:SELECT Datahora, column1, column2, column3FROM myTableWHERE id=20ORDER BY Datahora;現(xiàn)在,我的函數(shù)返回以下語句text..我復(fù)制粘貼并在pgAdmin或psql中執(zhí)行。我想自動化這一點(diǎn),自動運(yùn)行查詢并返回結(jié)果。我怎么能這么做?
重構(gòu)PL/pgSQL函數(shù)以返回各種SELECT查詢的輸出
喵喔喔
2019-06-13 14:52:08