ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [4회차-②] ORACLE (PL/SQL)
    ORACLE 2021. 5. 3. 09:27

    강의명 : 오픈프레임워크 활용 디지털융합 SW엔지니어 양성 과정

    강의 날짜 : 21.04.29

     

     

    <PL/SQL>

     

    Oracle's Procedure Language extension to SQL

    : 오라클 내장 절차형 언어

     

    비절차적 언어의 단점을 보완하였다.

    SQL문장에서 변수 정의, 조건, 반복 등의 처리를 지원한다.

     

    다음과 같은 하나의 절차가 존재한다.

    DECLARE 에서 선언을 하고

    BEGIN과 END 사이에 실행문이 온다.

     

    마치 JAVA에서 하나의 클래스 파일을 만드는 것과 같다.

     

     

     

    1. 초기 설정


    DBMS_OUTPUT.PUTLINE()이 출력 실행문인데, 이 실행문이 정상 작동하려면
    SET SERVEROUTPUT ON이 필수이다.

     

    * / → RUN이라는 키워드가 들어가 있는 예약 문자이다.

    * 결국 컬럼에 있는 데이터를 가져오는 것이기 때문에 컬럼의 자료형과 맞아야 한다.

    * 변수를 초기화하지 않고 정의만 하면 NULL값을 가진다.

    * 변수의 데이터에 일부 제약 조건을 줄 수 있다. (NOT NULL, CONSTANT(FINAL상수))

     

     

     

    2. 선언 및 실행

     

    * := → 대입연산자

     

     

     

    3. 레퍼런스 자료형

     

    스칼라 : 기본 자료형 (숫자, 문자, 날짜, BOOLEAN 등)

    레퍼런스(참조) 

    * 테이블이름.필드명.%TYPE → 컬럼 단위

    * 테이블이름.%ROWTYPE → 레코드 단위

     

     

     

    4. 다중 IF

     

    IF THEN

    ELSIF THEN

    ELSE

    END IF

     

     

     

    5. 반복문

     

    * Basic Loop

     

     

    * FOR IN 반복문

     

    FOR 변수 IN 시작값 .. 마지막값 LOOP

    실행문

    END LOOP

     

    범위에서 초기값을 읽어와서(FETCH) 변수에 담는다.

    그리고 반복문이 진행될 때마다 범위 안에서 다음 값을 읽어와서 변수에 담으며 반복문을 진행시킨다.

     

    JAVA의 for enhenced 반목문과 비슷하다.

    for( : )

     

     

     

    6. 커서

     

    커서는 임시메모리로 클립보드의 버퍼와 같은 기능을 한다.

     

     

    결과 셋에서 다음 메모리로 이동하면서 읽어온다.

    더이상 메모리가 없으면 %NOTFOUND로 FETCH를 종료한다.

    JAVA에서 FILE을 처리하는 방식과 비슷하다. (스트림 형식)

     

    %ROWCOUNT는 커서가 관리하는 테이블의 행 개수를 의미한다.

     

    FOR LOOP는 자체적으로 커서와 카운트의 기능을 가지고 있다.

     

     

     

    7. 프로시저

     

    DB의 프로시저는 JAVA의 메소드와 같다.

    EXEC로 호출이 가능하며, 매개변수가 없으면 함수 이름만 가지고 호출한다.

     

     

     

    8. CRUD

     

    DML + SELECT 로 데이터를 처리하는 기법을 말한다.

    CRUD
    CREATE(=INSERT)
    READ(=SELECT)
    UPDATE
    DELETE
Designed by Tistory.