![[Oracle] 프로시저 내에서 DDL 실행하기 - Create, Drop, Atler, Truncate, CTAS](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FYj4ML%2FbtsKREQ3q7t%2FE7EO24wypKIRXFdYJbMRV1%2Fimg.png)
DATABASE/Oracle2024. 11. 21. 09:52[Oracle] 프로시저 내에서 DDL 실행하기 - Create, Drop, Atler, Truncate, CTAS
Procedure 내에서 DDL 실행Oracle의 프로시저 내에서는 DDL문을 바로 실행 할 수 없다.create or replace procedure UP_BAN_TEST isbegin create table XTMP_DDL_TABLE (t_no number(10));end;위와 같은 프로시저를 생성하면, 컴파일 시 아래와 같은 오류가 발생한다. (Error: PLS-00103) Oracle의 프로시저는 컴파일 시 문법적 오류를 확인하며 실행 계획을 미리 정하는데, DDL은 실제 런타임에만 실행이 가능하여 실행 계획을 미리 정할 수 없어 오류가 발생하게 된다. 동적 쿼리 실행프로시저 내에서 DDL문을 실행하기 위해서는 동적쿼리를 실행하는 방식으로 작성하여 실행하도록한다. 주로 CTAS, CREAT..