-
PL/SQL 실행 블럭에서 동적 쿼리 작성하기개발/Database 2018. 8. 8. 15:44
PL/SQL 내부에서 동적으로 스키마명과 테이블명을 받아 전체 데이터 건수를 뽑아내는 쿼리
결론부터 말하자면 쿼리 스트링을 만들어 준 다음에
'EXECUTE IMMEDIATE 쿼리' 명령어를 추가해주면 된다.
CREATE OR REPLACE FUNCTION F_TEST
(P_S_NAME VARCHAR2, P_T_NAME VARCHAR2) --스키마명과 테이블명을 파라미터로 받음
RETURN NUMBER
IS
V_TMP NUMBER; --데이터 건수를 담아 리턴할 변수
V_TMP_QUERY VARCHAR2(4000); --쿼리문을 담을 변수
BEGIN
V_TMP_QUERY := 'SELECT COUNT(*) FROM ' || P_S_NAME || '.' || P_T_NAME ; --동적 쿼리 작성
EXECUTE IMMEDIATE V_TMP_QUERY INTO V_TMP; --쿼리 실행 및 실행 결과를 V_TMP 변수에 저장
RETURN V_TMP;
END;
/
'개발 > Database' 카테고리의 다른 글
TABLE Function 이라는 것도 있다 (0) 2019.01.09 데이터베이스의 SYNONYM 은 뭐하는 놈일까 (0) 2018.09.07 PL/SQL 에서의 FUNCTION vs PROCEDURE (0) 2018.08.08 오라클 DB 테이블스페이스 용량 늘리기 (0) 2018.08.02 SQL을 활용해서 스네이크 케이스를 카멜 케이스로 바꾸기 (0) 2018.07.26 댓글