원래는 프로시저, 함수, PSTMT의 인자를

쿼리의 컬럼명, 함수명으로 사용할 수 없다.

하지만 format(queryString, params) 함수를 통해 쿼리 스트링을 완성하고

프로시저 내에서 EXECUTE를 통해 실행하는 방식으로 편법을 사용할 수 있다.

같은 맥락으로 replace(str, a, b) 함수도 가능하다.

기본

EXECUTE format('UPDATE %s SET PRCD_YN = 0::TEXT WHERE PRCD_YN = 1::TEXT', '테이블명');

프로시저 + EXECUTE + Format

// 가공 완료 처리(PRCD_YN = '0'인 행을 PRCD_YN = '1'로 업데이트)

DROP PROCEDURE IF EXISTS COMPLETE_PROCESSING;
CREATE PROCEDURE COMPLETE_PROCESSING (_tabName TEXT)
AS $$
BEGIN
    EXECUTE format('UPDATE %s SET PRCD_YN = 0::TEXT WHERE PRCD_YN = 1::TEXT', _tabName);
END;
$$
LANGUAGE plpgsql;

// 실행 예시
CALL COMPLETE_PROCESSING('RD_ADM_DSTRT');