列名を動的に設定したい、二重にネストされたFORループを持つPostgresql 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;
何か案は?
確かにこれを行う方法はありますが、私はそれを見つけることができないようです。すべてのヘルプと提案をいただければ幸いです。ありがとう。