CS/DataBase

Oracle PL/SQL

prden 2022. 12. 29. 13:12

1. PL/SQL (Procedural Language extension to SQL)

SQL을 확장한 절차적 언어(Procedural Language)이다. PL/SQL은 블록단위로 구성되며 논리적인 작업을 진행하는 여러 명령어들을 하나의 블록으로 만들어서 모듈식 프로그램 개발이 가능해진다.

2. 종류

Procedure, Function, Trigger

 

3. 트랜잭션(TCL) = 데이터베이스의 논리적 연산 단위

트랜잭션은 밀접힌 관련돼 분리될 수 없는 한 개 이상의 데이터베이스 조작을 가리킨다. 하나의 트랜잭션에는 하나 이상의 SQL 문장이 포함된다.

DDL의 경우(CRATE, ALTER, DROP, RENAME, TRUNCATE 등) 자동으로 커밋됨.

데이터 베이스를 정상적으로 접속 종료하면 DML 자동으로 트랜잭션이 커밋된다.

애플리케이션의 이상 종료로 데이터베이스와 접속이 단절될 경우 자동 롤백된다.

 

 1) COMMIT

   (데이터 처리내역을 최종적으로 반영)

  COMMIT [WORK];

 

 2) ROLLBACK

   (데이터베이스에  가해진 변경사항을 취소)

  ROLLBACK [WORK]  [TO [SAVEPOINT] 세이브포인트명];

--> COMMIT은 작업이 성공했을 때, ROLLBACK은 작업이 실패했을 때 작성

따라서 BEGIN 하단에 COMMIT을 명시하고 ROLLBACK은 예외처리와 함께 사용되므로 특정 예외가 발생했을 때 예외처리 구문에 ROLLBACK을 명시한다. 

 

3) SAVEPOINT

   ( ROLLBACK을 명시하면 작업 전체가 취소되는데, 전체가 아닌 특정 부분에서 트랜잭션을 취소시킬 수 있다.) 

취소하려는 지점을 명시하고 그 지점까지 작업을 취소하는 형태로 사용하는데 이 지점을 SAVEPOINT라고 함

 

4. 커서 (~ 시)

https://logical-code.tistory.com/53

 

[PL/SQL] 커서(CURSOR) (1) : 명시적 커서와 묵시적 커서

[PL/SQL] 커서(CURSOR) (1) : 명시적 커서와 묵시적 커서 [PL/SQL] 커서(CURSOR) (2) : 커서와 FOR문 [PL/SQL] 커서(CURSOR) (3) : 커서변수 커서(CURSOR)특정 SQL 문장을 처리한 결과를 담고있는 영역을 가리키는 일종

logical-code.tistory.com

https://goddaehee.tistory.com/99

 

[Oracle] PL/SQL 기초 (정의, 특징, 사용방법, 변수선언 방법)

[Oracle] PL/SQL 기초 (정의, 특징, 사용방법, 변수선언 방법) 안녕하세요. 갓대희 입니다. 이번 포스팅은 [PL/SQL 기초] 입니다. :) ▶ PL/SQL (Procedural Language extension to SQL) - SQL을 확장한 절차적 언어(Procedu

goddaehee.tistory.com

https://logical-code.tistory.com/52?category=724583 

 

[PL/SQL] 트랜잭션

트랜잭션특정 테이블에서 데이터를 읽어 조작 후 다른 테이블에 입력하거나 갱신, 삭제하는데 처리 도중 오류가 발생하면 모든 작업을 원상태로 되돌리고, 처리과정이 모두 성공했을 때만 최종

logical-code.tistory.com

 

'CS > DataBase' 카테고리의 다른 글

DB ConnectionPool  (0) 2022.12.30
Lock 과 트랜잭션 동시성 제어  (0) 2022.12.29
ORACLE 프로시저  (0) 2022.12.21
MySQL data Directory의 위치  (0) 2022.12.21
ORACLE 각종 쿼리 함수  (0) 2022.01.11