ABOUT ME

개발자의 일상과 개발이야기를 담은 지식나눔 블로그

  • PL/SQL DECLARE
    프로그래밍/Oracle 2019. 9. 6. 16:20
    반응형

     ** [ 프로시저(PL)의 기본 구조 ] **

       

         - 선언부(Declare) : 모든 변수나 상수를 선언하는 부분

         - 실행부(Executable) : BEGIN ~ END // 실재 로직이 수행되는 부분 

              ex) 제어문, 반복문, 함수정의 등의 로직을 기술하는 부분...

         - 예외처리부(Exception) : 실행도중에 에러 발생시 해결하기위한 명령들을 기술하는 부분

           (생략가능)

           

          ** Declare, begin, exception 키워드들은 ';' 을 붙이지 않는다. **

          ** 나머지 문장들은 ';'으로 처리하여 영역의 끝을 표시한다.

          

          

         - 익명 블록(Anonymous PL/SQL)

              : 주로 일회성으로 사용할 경우 많이 사용된다.

              

         - 저장 블록(Stored PL/SQL)

              : 서버에 저장해 놓고 주기적으로 반복해서 사용할 경우 사용된다.

     

    /*

      [ PL/SQL(Procedural Language/SQL) ]

      : 오라클에서 제공하는 프로그래밍 언어

      : 일반 프로그래밍 언어적인 요소를 다 가지고 있고,

        데이터베이스 업무를 처리하기 위한 최적화된 언어

         

         

         

       ** [ 프로시저(PL)의 기본 구조 ] **

        

         - 선언부(Declare) : 모든 변수나 상수를 선언하는 부분

         - 실행부(Executable) :BEGIN ~END // 실재 로직이 수행되는 부분

              ex) 제어문, 반복문, 함수정의 등의 로직을 기술하는 부분...

         - 예외처리부(Exception) : 실행도중에 에러 발생시 해결하기위한 명령들을 기술하는 부분

           (생략가능)

            

          **Declare,begin, exception 키워드들은';' 을 붙이지 않는다. **

          ** 나머지 문장들은';'으로 처리하여 영역의 긑을 표시한다.

           

           

         - 익명 블록(Anonymous PL/SQL)

              : 주로 일회성으로 사용할 경우 많이 사용된다.

               

         - 저장 블록(Stored PL/SQL)

              : 서버에 저장해 놓고 주기적으로 반복해서 사용할 경우 사용된다.

    */

    -- EX)

     

    set SERVEROUTPUTOFF;

    set SERVEROUTPUTON;-- dbms_output.put_line메서드를 이용해 출력을 가능케해주는 세팅

     

    -- 익명 블럭(Anonymous PL/SQL) EX

    DECLARE --선언부

      cntinteger;

    BEGIN --실행부

      cnt := cnt+1; /* 할당'=' 이 아니라':=' */

      -- null과 연산하면 결과는 null

      if cntis null then

        dbms_output.put_line('결과 : cnt는 NULL입니다.');-- 괄호 안 내용을 화면에 출력하는 메서드

      end if;

    END;

     

    /-- 작성한 프로시저 실행

     

    /*

      PL/SQL 문장 안에 SQL 문장이 포함될 수 있는데 이 SQL 문장은 SQL 실행자에 의해 실행된다.

      PL/SQL 문장은 프로시저 실행자가 처리->(PL/SQL엔진)이 수행한다.

       

      SQL실행자가 SQL문을 실행해 프로시저 실행자에게 넘겨준다.(돌려준다)

      그러면 그걸 PL/SQL엔진이 처리하게 된다.

    */

     

    DECLARE

      empNo number(20);

      empName varchar2(10);

    BEGIN

      select employee_id, first_nameinto empNo, empName-- empNo와 empName에 각 결과 필드값을 넣겠단 의미(into)

      from Employees

      where employee_id = 124;

     

      DBMS_OUTPUT.put_line(empNo||' '||empName);-- 각 변수 값을 화면에 출력

    END;

     

    /



    출처: https://rongscodinghistory.tistory.com/96 [악덕고용주의 개발 일기]



    출처: https://rongscodinghistory.tistory.com/96 [악덕고용주의 개발 일기]

    반응형

    '프로그래밍 > Oracle' 카테고리의 다른 글

    댓글

Designed by Tistory.