저는 지난 수년 동안 PostgreSQL에서 일해 왔지만, 배열 개념과 PostgreSQL에서 배열을 처리하는 방법에 대해서는 전혀 몰랐습니다. 여러 테이블에서 열을 선택하기위한 동적 쿼리가 필요하며 결과는 커서에 표시되고 열 이름은 동적으로 변경되어야합니다. (여러 테이블에 완전히 30 열은 사용자가 COL1, COL5, col6, col25이 필요한 경우가있다) 예에 대한문자열 배열을 매개 변수로 사용하지 않고 PostgreSQL에서 동적 쿼리를 사용합니다.
, 그래서 select 문 쿼리는 동적됩니다 같이 변경됩니다 :
select col1, col5,col6,col25 from table ....
다른 사용자
가 COL2 필요 , COL5는 col7는 col29는 col26는 SELECT 문 어레이를create or replace function func_my_method(check_in character varying, sel character varying[])...
,745,151 것이다
select col2,col5,col7,col29,col26 from table .... and so on.
프로 시저 통과 파라미터로서 동적으로 변화 할 것이다
이 SEL은 []를 처음 우리가 별도의 변수에 배열 값을 분할하고 이들 변수가 마지막으로하고 싶은 말
'select'||col1, col5,col6,col25||'from......'
됩니다 select 문에 가정한다이
sel[0]:='col1_name'
sel[1]:='col5_name'
sel[2]:='col6_name'
sel[3]:='col25_name'
같이 포함 간단히 말해서 매개 변수에 배열을 전달해야하며 배열 값을 분리해야하며 별도의 변수에 할당합니다. 이 변수는 동적 방식으로 명령문을 선택하는 데 사용됩니다.
그래서 동적 문을 만듭니다. 니가 그걸로 무엇을하고 있니? 세트? 표? 행 수? –
@ VaoTsun 나는 당신의 참고를 위해 언급 한이 문장이나 절차를 만들지 않습니다. 위의 기준에 대한 절차가 필요하고 커서로 반환됩니다. 친절하게 도와주세요. –
그래서 ['refcursor'] (https://www.postgresql.org/docs/current/static/plpgsql-cursors.html)와 같은 것이 필요합니까? http://rextester.com/FMCUW60860 - SQL 삽입 가능성을 최소화하기 위해'format()'또는'quote_ident() '로 열 이름을 인용하는 것을 잊지 마십시오. – pozs