기본 콘텐츠로 건너뛰기

라벨이 PL/pgSQL인 게시물 표시

PostgreSQL PL/pgSQL 함수 작성 완벽 가이드 — 기본 구조부터 동적 SQL까지 (dynamic table select with function)

PostgreSQL PL/pgSQL 함수 작성 완벽 가이드 — 기본 구조부터 동적 SQL까지 (dynamic table select with function) AI 생성 이미지: PostgreSQL PL/pgSQL 함수 작성 완벽 가이드 — 기본 구조부터 동적 SQL까지 (dynamic table select with function) 핵심 개념과 실무 중심 사용법 PostgreSQL 에서 함수를 만드는 방식은 크게 두 가지입니다. 간단한 연산이나 조회는 순수 SQL 함수로 처리할 수 있고, 복잡한 제어 흐름이나 반복, 예외 처리 등이 필요하면 PL/pgSQL 을 사용합니다. PL/pgSQL은 절차형 언어로서 조건문, 반복문, 지역 변수 같은 프로그래밍 요소를 제공해 복잡한 비즈니스 로직을 데이터베이스 안에서 직접 구현할 수 있습니다. 성능과 유지보수 측면에서 서버 측 로직을 적절히 분리하면 이점이 큽니다. 📘 1. 기본 함수 구조 PostgreSQL 함수는 CREATE FUNCTION 문을 통해 선언합니다. 기본 형태는 다음과 같고, 실제 구현은 반환 타입과 필요한 권한에 따라 달라집니다. CREATE OR REPLACE FUNCTION 함수이름(매개변수) RETURNS 반환타입 LANGUAGE plpgsql AS $function$ BEGIN -- 함수 내용 작성 END; $function$; OR REPLACE : 기존 함수를 안전하게 덮어씀 RETURNS : 스칼라 타입, 레코드, 테이블 형태 등 반환 타입 지정 LANGUAGE plpgsql : PL/pgSQL로 작성되었음을 명시 🔍 2. 예제 함수 - 기간 내 월별 테이블 조회 아래 예제는 두 개의 날짜 입력( p_searchstartdate , p_searchenddate )을 받아 해당 기간에 해당하는 월별 테이블 이름을 조회합니다. 실무에서는 월 단위로 파티...

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 ...