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

in #oracle6 years ago (edited)

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


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

Coin Marketplace

STEEM 0.26
TRX 0.21
JST 0.037
BTC 94986.45
ETH 3594.38
USDT 1.00
SBD 3.77