PL/SQL 공부

월요일도 왠만하면 늦지 말자

%TYPE:

  • 변수명 테이블명.컬럼명 %TYPE;

%ROWTYPE:

  • 변수명 레코드명%ROWTYPE; –선언
  • 변수명 := 변수명.컬럼명; — 사용

패키지: 처음 불러들일 때 패키지 전체가 로드되어 메모리에 캐쉬됨. 이후의 콜에서는 디스크IO가 감소됨.

컬렉션: 벌크 SQL 사용으로 성능 높은 기능 제공

레코드:

  • 여러 데이터형 포함 가능. 단일 파라미터로 서브 프로그램에 그 항목들을 전달할 수 있다.
  • %ROWTYPE을 사용하여 여러 결과를(레코드) 선언 가능.

오브젝트: 객체지향? 프로그래밍의 가능성.

저장 프로시저: SQL*Plus에서 Standalone 프로시저를 콜하는 법:

call award_bonus(179, 1000);
--또는
BEGIN
    award_bonus(179, 1000);
END;

식별자: ” “로 감싸는 것도 가능

선언: DECLARE 내에

  • 변수명 타입 := 4000; (DEFAULT와 비슷)
  • 변수명 타입 NOT NULL := 9999; (이후 NULL 대입 불가)

alias 사용: 문자 결합 등으로 별명을 붙여서 사용 가능.

FOR item IN
    ( SELECT f_name || ' ' || last_name complete_name
      FROM ... )
LOOP
    ... 
    (item.complete_name);
END LOOP;

대소문자 구별: 상수, 변수, 파라미터 이름에 대소문자 구별 안 함(식별자도 마찬가지)

루프에는 라벨을 사용:

<<outer_loop>>
    FOR i IN ...
        <<inner_loop>>
            FOR i IN ...
              IF outer_loop.i = 2 THEN 
                 ...
                 inner_loop.i
                 ...
              END IF;
        END LOOP inner_loop;
END LOOP outer_loop;

다른 사람이 만든 소스 + 설계서 확인

겁나 길었다. 다음 주 월요일만 잘 보내면 드디어 내 컴퓨터가 생긴다. 으아~!