1
동적으로 열 이름을 설정하고자하는 이중 중첩 FOR 루프가있는 Postgresql PL/pgSQL 함수가 있습니다. 그러나 프로그래밍 방식으로 레코드 열을 액세스하는 방법을 찾을 수 없습니다.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
새로운 독자들에게 :'hstore' 확장 (PG 9.0) 또는 PG 9.3/9.4와 함께 제공되는 새로운 내장'json' 기능을 사용하여 더 간단하고 훨씬 빠른 방법이 있습니다. 새로운 솔루션 (및 벤치 마크)은 다음 링크의 @Erwin 질문에 추가되었습니다. http://stackoverflow.com/a/28673097/1914376 –