내꺼다
by ㅎㅎ
메뉴릿
카테고리
LOOP문

PROCEDURE set_all_ranks(max_rank_in IN INTEGER)
IS
    ranking_level NUMBER(3) := 1;
BEGIN
    LOOP
        EXIT WHEN ranking_level > max_rank_in;
        set_rank (ranking_level);
        ranking_level := ranking_level + 1;
    END LOOP
END set_all_ranks;

<<WHILE문 이용>>
PROCEDURE set_all_ranks(max_rank_in IN INTEGER)
IS
    ranking_level NUMBER(3) := 1;
BEGIN
    WHILE ranking_level <= max_rank_in;
    LOOP
        set_rank (ranking_level);
        ranking_level := ranking_level + 1;
    END LOOP
END set_all_ranks;

<<FOR문 이용>>
PROCEDURE set_all_ranks(max_rank_in IN INTEGER)
IS
    ranking_level NUMBER(3) := 1;
BEGIN
    FOR ranking_level IN 1 .. max_rank_in
    LOOP
        set_rank (ranking_level);
    END LOOP
END set_all_ranks;

by ㅎㅎ | 2007/11/11 17:32 | Oracle | 트랙백 | 덧글(0)
CASE문
(예문)

CASE emp_type
WHEN 'S' THEN
    salary_bonus(emp_id);
WHEN 'H' THEN
    salary_bonus(emp_id);
WHEN 'C' THEN
    salary_bonus(emp_id);
ELSE
    RAISE INVALID_EMP_TYPE;
END CASE;

ELSE절을 명시하지 않으면 다음과 같이 처리한다.

ELSE
    RAISE CASE_NOT_FOUND;


by ㅎㅎ | 2007/11/11 17:24 | 트랙백 | 덧글(0)
IF문
IF 조건문 THEN
    문장
END IF;

IF 조건문 THEN
    문장
ELSE
    문장
END IF;

IF 조건문 THEN
    문장
ELSIF 조건문 THEN
    문장
ELSE
    문장
END IF;

중첩IF문일 경우,
IF 조건문 THEN
    IF 조건문 THEN
        문장
    ELSE
        문장
    END IF;
END IF;


*** 주의할 점
1. 항상 IF와 END IF를 매칭 시켜라.
2. END와 IF 키워드 사이에 공백을 둬라.
3. ELSIF 키워드에는 E가 없다.
4. END IF 키워드 다음에만 세미콜론(;)을 사용한다.


by ㅎㅎ | 2007/11/11 17:03 | Oracle | 트랙백 | 덧글(0)
오라클 예약어 보기
데이터 딕셔너리 뷰 V$RESERVED_WORD 를 보면 알 수 있다.

SQL>SELECT * FROM V$RESERVED_WORD

by ㅎㅎ | 2007/11/11 16:56 | Oracle | 트랙백 | 덧글(0)
저장프로시저 익명블록 (DECLARE)

익명블록은 이름이 없으므로 다른 블록에서 호출할 수 없다.
프로시저나 함수 호출부분이 포함되어 있는 경우 사용된다.

(예문)
DECLARE
    right_now DATE := SYSDATE;
BEGIN
    DBMS_OUTPUT.PUT_LINE(right_now);
END;

by ㅎㅎ | 2007/11/11 16:52 | Oracle | 트랙백 | 덧글(0)
< 이전페이지 다음페이지 >


최근 등록된 덧글
최근 등록된 트랙백
이전블로그
이글루링크
이글루 파인더
rss

skin by 이글루스