본문 바로가기

db/oracle

oracle DDL, DML 차이점

반응형

oracle DDL, DML 차이점

유형 TRUNCATE (DDL) DELETE (DML)
처리 엔진 SQL 엔진에서 처리
PL/SQL 엔진에서 직접 처리 가능
프로시저 내 직접 사용 불가능 (동적 SQL 필요) 가능
오류 발생 원인 PL/SQL 엔진이 DDL을 인식하지 못함
정상적으로 실행됨

DDL과 PL/SQL의 분리된 처리 방식

  • 오라클에서 SQL 명령어는 크게 두 가지로 분류됩니다.
  • DML (Data Manipulation Language): SELECT, INSERT, UPDATE, DELETE와 같이 데이터를 조작하는 명령어입니다. 이들은 PL/SQL 엔진 내에서 직접 실행될 수 있습니다.
  • DDL (Data Definition Language): CREATE, ALTER, DROP, TRUNCATE와 같이 데이터베이스 객체(테이블, 인덱스 등)의 구조를 정의하거나 변경하는 명령어입니다. DDL은 PL/SQL 엔진이 아닌 SQL 엔진에 의해 처리되어야 합니다.
  • 프로시저는 기본적으로 PL/SQL 엔진에서 실행됩니다. 따라서 PL/SQL 블록 내에 DDL 명령어를 직접 작성하면, PL/SQL 엔진은 해당 구문을 인식하지 못하고 문법 오류를 발생시키는 것입니다.

반응형

'db > oracle' 카테고리의 다른 글

oracle truncate 프로시져 사용 방법  (0) 2025.09.13
oracle 소수점 이하 버림  (0) 2025.09.13
오라클 숫자 앞에 0 추가, LPAD  (0) 2025.09.13
oracle connect by level 함수  (0) 2025.09.13
union all union 차이점  (0) 2025.09.13