기본 콘텐츠로 건너뛰기

라벨이 RETURN QUERY인 게시물 표시

PL/pgSQL RETURN QUERY EXECUTE 완전 정리 – RETURNS TABLE과 동적 쿼리 활용

PL/pgSQL RETURN QUERY EXECUTE 완전 정리 – RETURNS TABLE과 동적 쿼리 활용 AI 생성 이미지: PL/pgSQL RETURN QUERY EXECUTE 완전 정리 – RETURNS TABLE과 동적 쿼리 활용 PL/pgSQL로 함수를 만들다 보면 테이블 이름이나 조건을 런타임에 결정해야 할 때가 자주 있습니다. 이런 상황에서 동적으로 작성한 SQL을 실행해 결과를 함수 반환값으로 바로 돌려주는 문법이 RETURN QUERY EXECUTE 입니다. 이 글은 RETURN QUERY EXECUTE 의 개념과 기본 문법, 사용 예제, 안전한 파라미터 바인딩 방법, 그리고 실무에서 주의해야 할 점까지 핵심만 골라 정리합니다. 1. RETURN QUERY EXECUTE란 무엇인가? RETURN QUERY EXECUTE 는 함수 내부에서 문자열로 조립한 SQL 문을 실행하고, 그 실행 결과를 현재 함수의 결과 집합(Result Set)에 추가하는 구문입니다. 보통 RETURNS TABLE 이나 SETOF 형태의 함수에서 주로 사용합니다. 기본 형식 RETURN QUERY EXECUTE ' -- 여기에 동적 SQL 작성 SELECT ... '; 위 구조는 함수가 미리 정의한 컬럼 구조에 맞춰 행을 쌓아 반환합니다. 정적 쿼리를 쓸 때의 RETURN QUERY 와 달리 실행할 SQL을 런타임에 조합할 수 있다는 점이 핵심입니다. 2. 가장 기본적인 예제: 테이블 이름을 파라미터로 받기 다음 예제는 함수 인자로 전달된 table_name 을 이용해 해당 테이블의 id 와 name ...