본문 바로가기

02. SQLP 스터디/05. Oracle 기타

[오라클 PL/SQL] 동적 SQL [4 ~ ] / 45

오라클 PL/SQL 강좌#3 : 오라클 PL/SQL에서 동적 SQL(Dynamic SQL) 사용법 - 2
변수를 이용하여 SQL문장을 동적으로 만들어-  내는 경우
컴파일타임에 존재하지 않는 DB Object를 참조하는 경우
PL/SQL블록에서 다른 프로시저등을 호출하는 경우
7.1 Dynamic SQL 이란?

 PL/SQL은 Binding이 Compile시에 일어나므로 Database Object의 Name이 Compile시에 고정되어야 하는 등의 제한이 있지만 Dynamic SQL을 사용한다면 SQL문을 변수에 정의하여 SQL문의 최종완성을 런타임중에 할 수 있다는 장점이 있다.
 DBMS_SQL Package로 Dynamic SQL문의 사용을 가능하게 했는데 이는 Database Object의 Name을 Runtime에 줄 수 있을 뿐 아니라 DDL문장을 기술할 수도 있는 장점이 있다.   
 다음과 같은 경우 Dynamic SQL을 사용한다.
DDL을 사용하는 경우
변수를 이용하여 SQL문장을 동적으로 만들어 내는 경우(검색조건, 정렬조건, 힌트구문)
컴파일타임에 존재하지 않는 DB Object를 참조하는 경우(테이블의 이름을 동적으로 생성)
PL/SQL블록에서 다른 프로시저등을 호출하는 경우

7.1.1 동적 SQL을 이용하여 DDL을 실행

 Dynamic SQL을 이용하면 CREATE, DROP, GRANT, REVOKE 등을 사용할 수 있다.
 ALTER SESSION, SET 명령어등 SCL(Session Control Language)을 사용할 수 있다.
 Dynamic SQL을 이용하면 SELECT절에 TABLE구를 사용할 수 있다.