원래는 프로시저, 함수, PSTMT의 인자를
쿼리의 컬럼명, 함수명으로 사용할 수 없다.
하지만 format(queryString, params)
함수를 통해 쿼리 스트링을 완성하고
프로시저 내에서 EXECUTE를 통해 실행하는 방식으로 편법을 사용할 수 있다.
같은 맥락으로 replace(str, a, b)
함수도 가능하다.
EXECUTE format('UPDATE %s SET PRCD_YN = 0::TEXT WHERE PRCD_YN = 1::TEXT', '테이블명');
// 가공 완료 처리(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');