유가엘
개발일지
유가엘
전체 방문자
오늘
어제
  • 분류 전체보기 (107)
    • Solution (16)
      • EAI (11)
      • Concept (1)
      • webMethods (4)
    • Language (20)
      • Java (20)
    • DataBase (19)
      • Oracle (18)
    • Web Programming (38)
      • JSP (11)
      • Spring (10)
      • Project (17)
    • 협업도구 (8)
      • Git (8)
    • IT (6)
      • ETC (4)
      • 정보처리기사 (1)
      • Android (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

티스토리

hELLO · Designed By 정상우.
유가엘

개발일지

DataBase/Oracle

18. Oracle PL/SQL 반복문

2020. 4. 3. 10:38

17_RepeatStatmt.sql
0.00MB

Basic Loop
무조건 1번은 실행 한 후 조건에 맞지 않으면 실행하지 않습니다.

 

Basic Loop 문의 구조

Loop
    PL/SQL 문장;
    EXIT 조건 ;
END LOOP;

SET SERVEROUTPUT ON; 

DECLARE 
    num number := 0; 
BEGIN 
    LOOP 
        dbms_output.put_line(num); 
        num := num+1; 
        EXIT WHEN num >10; 
    END LOOP; 
END; 
/ 

--------------------------------------------------- 

DECLARE 
    num number := 10; 
BEGIN 
    LOOP 
        dbms_output.put_line(num); 
        num := num-1; 
        EXIT WHEN num = -1; 
    END LOOP; 
END; 
/ 

While 문
조건을 먼저 확인 후 실행 여부를 판단 합니다.

 

While 문의 구조
WHILE 조건 LOOP
    실행 문장;
END LOOP;

DECLARE 
    num number := 0; 
BEGIN 
    WHILE num <11 LOOP 
        dbms_output.put_line(num); 
        num := num +1; 
    END LOOP; 
END; 
/ 

-------------------------------------------

DECLARE 
    num number := 10; 
BEGIN 
    WHILE num >=0 LOOP 
        dbms_output.put_line(num); 
        num := num -1; 
    END LOOP; 
END; 

For 문
반복 횟수를 지정할 수 있습니다.

 

For 문의 구조 
For n:카운터 횟수 IN START...END  LOOP
    실행문장;
END LOOP;

BEGIN 
    FOR num IN 0..10 LOOP 
        dbms_output.put_line(num); 
    END LOOP; 
END; 

--------------------------------------------------- 

BEGIN 
    FOR num IN REVERSE 0..10 LOOP 
        dbms_output.put_line(num); 
    END LOOP; 
END; 

Continue 문

Oracle 11g 에서 추가되었으며 보조제어합니다.
조건에 부합할때 상위로 올라갑니다.

DECLARE 
    tot number := 0; 
BEGIN 
    FOR i in 1..10 LOOP 
        tot := tot+1; 
        dbms_output.put_line('tot:'||tot); 
         
        CONTINUE WHEN (i>5); 
        
        tot := tot+i; 
        dbms_output.put_line('tot2:'||tot); 
    END LOOP; 
END; 

 

저작자표시 비영리 변경금지

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

17. Oracle PL/SQL 조건문  (0) 2020.04.02
16. Oracle 콜렉션,바인드 함수  (0) 2020.04.02
15. Oracle PL/SQL  (0) 2020.04.02
14. Oracle 계층형쿼리  (0) 2020.03.30
13. Oracle Sequence  (0) 2020.03.30
    'DataBase/Oracle' 카테고리의 다른 글
    • 17. Oracle PL/SQL 조건문
    • 16. Oracle 콜렉션,바인드 함수
    • 15. Oracle PL/SQL
    • 14. Oracle 계층형쿼리
    유가엘
    유가엘

    티스토리툴바