[SQLD] 절차형 PL/SQL

hwwwa·2022년 6월 1일
0

🍊 SQLD

목록 보기
14/16

절차형 PL/SQL

  • Exception → 생략 가능
  • =저장모듈(Stored Module)
    • Trigger
      • 데이터의 무결성과 일관성 위해 특정 테이블에 INSERT, UPDATE, DELETE와 같은 DML문이 수행되었을 때 DB 내에서 자동 실행
      • DB에 로그인하는 작업에도 정의 가능
      • TCL(commit, rollback) 사용 불가능
      • 보통 DML을 많이 사용
    • Procedure
      • SQL을 로직과 함께 DB 내에 저장해놓은 명령문의 집합
      • Commit, Rollback과 같은 TCL 사용 가능
      • 반드시 값이 반환되지 않음
    • User Defined Function
      • 단독적으로 실행되기보다 다른 SQL문을 통해 호출되고 그 결과를 반환하는 보조적인 역할
      • 반드시 값이 반환됨
  • PL/SQL 특징
    • 동적 SQL 또는 DDL 문장 실행 시 EXECUTE IMMEDIATE를 사용해야 함
      • ex) execute immediate ‘TRUNCATE TABLE DEPT’;
    • Block 구조로 되어있어 각 기능별 모듈화 가능
    • 여러 SQL 문장을 Block으로 묶고 한번에 서버로 보내므로 통신량 감소 → 응용 프로그램의 성능 향상
    • 변수, 상수 등 사용으로 SQL 문장간 값을 교환. 일반 SQL 문장 실행 시 WHERE 절의 조건 등으로 대입 가능
    • IF, LOOP 등의 절차형 언어를 사용해 절차적 프로그램 가능
    • DBMS 정의 에러나 사용자 정의 에러 사용 가능
    • 프로시저, 사용자 정의 함수, 트리거 객체를 PL/SQL로 작성 가능
    • 프로시저 내부에 작성된 절차적 코드는 PL/SQL 엔진이 처리, 일반적인 문장은 SQL 실행기가 처리
    • PL/SQL로 작성된 프로시저, 사용자 정의 함수는 작성자 기준으로 트랜잭션 분할 가능
    • 프로시저 내에서 다른 프로시저 호출 시 호출 프로시저의 트랜잭션과는 별도로 PRAGMA AUTONOMOUS_TRANSACTION을 선언해 자율트랜잭션 처리 가능
    • 오라클에 내장되어 있음. 오라클과 PL/SQL을 지원하는 어떤 서버로도 프로그램을 옮길 수 있음
  • CURSOR
    • 선언→OPEN→FETCH(읽어오기)→CLOSE

0개의 댓글