![[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)
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..
![[Oracle] DML Trigger - 테이블에서 사용하는 트리거 정리](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F0IphG%2FbtsKDB122jC%2FuH6TYLO2ImVWHm0wPBHXf1%2Fimg.png)
DML Trigger트리거, 우리 대부분 트리거에 대해서 알고 있을 것 이다. 트리거의 특징으로는 아래 정도 알 고 있을 것 이다.* 특정한 동작이 실행되었을 때, 자동으로 함께 실행되는 것 * 데이터의 무결성을 유지* 자동으로 함께 실행되기에 성능 이슈가 있을 수 있다create or replace trigger [트리거 이름]before [or atfer] -- dml문 이전이냐 이후냐insert [or update / delete] [트리거가 동작할 테이블] -- 테이블에서 지정한 dml문이 동작시 트리거 실행[FOR EACH ROW] -- 행 트리거 일 경우 / 문장 트리거 생략begin -- 동작할 트리거 내용end;근데 트리거에 대해서 깊게 생각 해본 적이 있는가??? 그냥 함께 실행된다..
![[MariaDB] User DDL - 사용자 생성, 변경, 삭제](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdN8Joc%2FbtsGc3QJx6v%2FeKc7wcipLDgbc1k7vTqLu1%2Fimg.png)
MariaDB User Database의 중요한 관리 중 하나는 User 에 대한 관리설정이다. 사용자에 맞는 User를 생성하고 발급하며, 해당 User별로 권한을 설정함으로써 보안에 좀 더 신경 쓸 수 있다. 요번 포스팅에서는 MariaDB의 User의 생성, 변경, 삭제를 할 수 있는 DDL에 대해서 알아보도록 하자. User DDL MariaDB User의 Create / Alter / Drop 명령어로 유저의 생성과 변경, 삭제를 담당한다. MariaDB의 User는 다른 Database와 다르게, 접근 위치 별(Host) 계정을 생성 할 수 있다. DDL명령어 설명하며 같이 설명하도록 하겠다. 사용자에 대한 정보는 mysql.user 라는 시스템 뷰로 확인 할 수 있다. select * fro..
![[Oracle][Error] ORA-01502: 인덱스 'PK_Name' 또는 인덱스 분할영역은 사용할 수 없는 상태입니다.](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FuuL2w%2Fbtsn1bDZf43%2FJk21u6K9pkajC7uV8BZU6k%2Fimg.png)
Intro 안녕하세요. 초보 DBA 다뉴입니다. 오늘 갑자기 Schedule걸어둔 작업에 갑자기 오류가 났습니다. ORA-01502: 인덱스 'PK_Name' 또는 인덱스 분할영역은 사용할 수 없는 상태입니다. 라는 에러 메시지가 출력되었는데요. 한번 알아보도록 하겠습니다. 어떤 오류? ORA-01502: 인덱스 'PK_Name' 또는 인덱스 분할영역은 사용할 수 없는 상태입니다. 이러한 메시지가 출력되며, 데이터 Insert, Update, Delete를 할 수 없는 상태가 되었습니다. select은 정상적으로 되었네요. 이유는? 금일 데이터베이스 관리 작업 중에 해당 테이블에 TableSpace를 변경하였습니다. 제 생각에는 이 작업이 문제였다고 생각되네요. 저는 Index에 대해서는 따로 Index..