1
我有一個Postgresql PL/pgSQL函數,它具有雙重嵌套的FOR循環,我想在其中動態設置列名稱。但是我找不到以編程方式訪問RECORD列的方式。動態更改PL/pgSQL RECORD列的值
我會直接跳到一個例子一些代碼:
FOR loop_helper1 IN SELECT
id, name1, name2, name3, nameN,
FROM table1
LOOP
FOR loop_helper2 IN SELECT name FROM table2 LOOP
-- I want to set values of columns in loop_helper1,
-- with the column name given by loop_helper2.name
-- An EXECUTE would not allow me to do this:
EXECUTE 'loop_helper1.' || loop_helper2.name || ':= function_call(123);'
-- (Eg. 'loop_helper1.name2 := function_call(123);')
-- However, this produces: ERROR: syntax error at or near "loop_helper1"
END LOOP;
END LOOP;
任何想法?
當然,有一種方法可以做到這一點,但我似乎無法找到它。所有的幫助和建議表示讚賞。謝謝。
謝謝!有趣的閱讀。 – ptrn 2012-07-20 19:19:04
對於新讀者來說:使用'hstore'擴展(PG 9.0)或使用PG 9.3/9.4附帶的新內置'json'函數,可以更簡單快速地完成此操作。新的解決方案(和基準)被添加到@Erwin的問題鏈接到:http://stackoverflow.com/a/28673097/1914376 – 2015-03-15 16:18:55