[ORACLE] 정적쿼리 및 동적쿼리

김은경·2022년 8월 23일
0

바로 앞 전 포스트에서 언급했던 프로시저를 개발하면서 동적쿼리에 대해 알게 되었고 이를 정리해보았다.
동적쿼리가 필요했던 이유는 커서로 테이블명을 받아왔고 이 커서 변수를 쿼리문에 써야할 상황이었기 때문이다.
(정적쿼리로는 배열로 정의한 테이블명이 인식 안됌)


1) 정적쿼리 :

  • 고정된 SQL 형태를 만들어 사용 (일반적으로 작성된 SQL쿼리)
  • Parsing 되면 Memory에 상주하면서 Shared
    => Stored Procedure에 새로 캐싱되지 않아 재사용성 있음
    EX)

2) 동적쿼리 :

  • 입력 값이나 변경 사항을 추가해 실행할 쿼리문을 문자열로 SQL 변수에 작성해 담아 만든 후 DBMS에서 콜
  • 실행 될 때마다 Parsing
    => Stored Procedure를 생성할 때 새로 캐싱되어 재사용성 떨어트림
    EX)



    NUMTB 테이블을 이용해 특정 코드를 프로시저에 입력하면 그 코드의 NUM 총 합계를 구하는 프로시저를 만들어보겠습니다.
    [NUMTB] 데이터




참고 사이트 :
http://deviant86.tistory.com/468
http://www.gurubee.net/article/19612

0개의 댓글

관련 채용 정보