레이블이 PLSQLIF인 게시물을 표시합니다. 모든 게시물 표시
레이블이 PLSQLIF인 게시물을 표시합니다. 모든 게시물 표시

2021년 12월 24일 금요일

PLSQL 제어문,반복문, IF, LOOP, END LOOP, FOR LOOP, WHILE LOOP, PL/SQL동영상, 자바학원, 오라클학원, JAVA학원, ORACLE학원

 










PLSQL 제어문,반복문, IF, LOOP, END LOOP, FOR LOOP, WHILE LOOP, PL/SQL동영상


오라클 PL/SQL




제어문, 반복문


강의 : 이종철



PL/SQL IF문


[형식]

IF condition1 THEN

   Condition1이 만족하는 경우 실행할 문장

ELSIF condition2 THEN

 Condition2가 만족하는 경우 실행할 문장

ELSE

   이외의 경우 실행할 문장

END IF;



-- EMP 테이블에서 이름을 입력받아 급여가 3000보다 크면 'high sal' 

-- 2000보다 크면 'mid sal' 그밖에는 'low sal'을 출력하는 프로시저를 작성하세요.


SQL> SET SERVEROUTPUT ON

SQL> CREATE OR REPLACE PROCEDURE OJC16(v_ename emp.ename%TYPE)

    IS

    v_sal emp.sal%TYPE;

    BEGIN

      SELECT sal INTO v_sal

      FROM EMP

      WHERE ename = v_ename;

  

      IF v_sal >= 3000 THEN

       DBMS_OUTPUT.PUT_LINE('high sal...');

     ELSIF v_sal >= 2000 THEN

       DBMS_OUTPUT.PUT_LINE('mid sal...');

     ELSE

       DBMS_OUTPUT.PUT_LINE('low sal...');

     END IF;

   EXCEPTION

     WHEN NO_DATA_FOUND OR TOO_MANY_ROWS THEN

       DBMS_OUTPUT.PUT_LINE('Data 추출에러');

  END;

   /


프로시저가 생성되었습니다.


SQL> exec ojc16('SMITH')

low sal...


SQL> exec ojc16('KING')

high sal...


SQL> exec ojc16('없는사원')

Data 추출에러



BASIC LOOP문


  • LOOP~END LOOP 형태이며 무한루프이므로 출구가 있어야 한다.(EXIT or EXIT WHEN절)
  • LOOP COUNTER 변수 등은 직접 다루어야 한다.

 

[형식]

LOOP

  실행문장;

END LOOP;


-- LOOP ~ END LOOP, EXIT 이용한 예제

SQL> SET SERVEROUTPUT ON

SQL> DECLARE

       x number := 10;

    BEGIN

       LOOP

          DBMS_OUTPUT.PUT_LINE(x);

          x := x - 1;

          IF x < 1 THEN

             EXIT;

          END IF;

      END LOOP;

      DBMS_OUTPUT.PUT_LINE('x = ' || x);

   END;

   /


10

9

8

1

x = 0


-- LOOP ~ END LOOP, EXIT WHEN 이용한 예제

SQL> DECLARE

       x number := 10;

    BEGIN

       LOOP

          DBMS_OUTPUT.PUT_LINE(x);

          x := x - 1;

          EXIT WHEN x < 1;

       END LOOP;

       DBMS_OUTPUT.PUT_LINE('x = ' || x);

   END;

   /

10

9

8

1

x = 0



FOR LOOP문


  • LOOP~END LOOP 앞에 FOR 제어문을 가지므로 루프 카운터 변수가 필요없고 LOOP~END LOOP 안쪽에 출구 역시 필요없다.
  • 인덱스는 자동으로 선언되며 자동으로 1씩 증가하고 REVERSE라고 하면 상한값에서 초기값으로 -1씩 증가한다.(초기값과 상한값의 위치가 바뀌어서는 안된다.)


[형식]

FOR 인덱스 IN [REVERSE] 초기값 .. 상한값 LOOP

   실행문장;

END LOOP; 




-- FOR LOOP예제

SQL> SET SERVEROUTPUT ON

SQL> DECLARE

    BEGIN

      FOR x IN 1..10 LOOP

         DBMS_OUTPUT.PUT_LINE(x);

      END LOOP;

    END;

    /

1

10


-- FOR LOOP예제(REVERSE)

SQL> DECLARE

    BEGIN

      FOR x IN REVERSE 1..10 LOOP

         DBMS_OUTPUT.PUT_LINE(x);

      END LOOP;

    END;

    /

10

9



WHILE LOOP문


  • 조건이 만족하는 동안 LOOP~END LOOP를 실행하므로 별도의 출구는 필요없지만 루프 카운터 변수등은 선언해서 사용해야 한다.
  • 조건에 만족하지 않으면 반복문내 실행문이 한번도 실행되지 않는다.


[형식]

WHILE 조건 LOOP

   실행문장;

END LOOP;


SQL> SET SERVEROUTPUT ON

SQL> DECLARE

      x NUMBER := 10;

    BEGIN

      WHILE(x > 0) LOOP

        DBMS_OUTPUT.PUT_LINE(x);

        x := x - 1;

      END LOOP;

      DBMS_OUTPUT.PUT_LINE('x = ' || x);

    END;

   /

10

9

1

x = 0





#PLSQL, #제어문, #반복문, #PLSQLIF, #PLSQLLOOP, #PLSQL반복문, #PLSQL제어문, #PLSQL동영상, #PLSQL교육, #SQL학원, #SQL교육, #오라클학원, #오라클교육, PLSQL, 제어문, 반복문, PLSQLIF, PLSQLLOOP, PLSQL반복문, PLSQL제어문, PLSQL동영상, PLSQL교육, SQL학원, SQL교육, 오라클학원, 오라클교육, 


(C#교육동영상)C# ADO.NET 실습 ODP.NET/ODAC 설치 오라클 함수 호출 실습, C#학원, WPF학원, 닷넷학원, 자바학원

  (C#교육동영상)C# ADO.NET 실습  ODP.NET/ODAC 설치  오라클 함수 호출 실습, C#학원, WPF학원, 닷넷학원, 자바학원 https://www.youtube.com/watch?v=qIPU85yAlzc&list=PLxU-i...