ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • oracle PL/SQL_개념
    DataBase/oracle 2020. 3. 22. 12:58

     

    PL/SQL (procedual language /SQL)  : 오라클에서 제공하는 프로그래밍 언어

    일반적 프로그래밍 언어적인 요소를 다 가지고 있고, 데이터베이스 업무를 처리하기 위한 최적화 된 언어

    1) 기본 구조

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

       - 실행부 (Executable) : begin ~ end / 제어문, 반복문 함수정의 등의 로직을 기술하는 부분

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

     

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

    나머지 문장들은 ; 으로 명령을 마무리?한다

    declare

         변수선언

    begin

        실행문 선언

    end;

     

    <PL 은 익명블록과 저장블록으로 나뉜다>

    2) 익명블록 (anonymous PL/SQL Block) : 주로 일회성으로 사용 할 경우 쓰인다.

    3) 저장블록 (stored PL/SQL Block) : 서버에 저장해 놓고 주지적으로 반복해서 사용할 경우 쓰인다.

     

    ** 익명블록 프로시저

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    declare  
        cnt integer;  -- 변수선언
    begin
        cnt := cnt+1;  -- 변수에 값 넣을 때 = 가 아니라 := 사용!!
        if cnt is null then 
            dbms_output.put_line('결과 : cnt는 널이다');
        end if;
    end;
     
    /
     
     
    http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter

    ** 변수에 값을 넣을 때 := 을 사용한다

    ** dbms_output.put_line 은 java의 system.out.println() 기능

    ** 프로시저를 완성하고 실행 할 때 ' / ' 을 사용한다

    그런데 저 상황에서 실행시키면 이렇게 뜨고 실행결과 안보여준다

     

    set serveroutput on; 명령어를 실행시켜줘야한다 

    1
    2
    set serveroutput on;
    set serveroutput off;

     

    결과값 출력

     

    ** 익명블록이 아닌 저장블록 프로시저는 스키마의 프로시저 탭에서 확인 할 수 있다

     

    ** sql을 씨퀄이라고도 말한는 것 같다.. 검색해보니까 외국에서는 sql이라고 안하고 씨퀄이라고 한다는 것 같당

     

    <프로시저 처리 단계>

    ** 씨퀄과 PL이 따로 처리된다는 것을 기억하도록하자!!

     

     

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

    oracle PL/SQl_rowType변수 및 복합변수 활용  (0) 2020.03.22
    oracle PL/SQL_변수 선언 및 데이터 타입  (0) 2020.03.22
    oracle 계층형 쿼리  (0) 2020.03.22
    oracle 시퀀스  (0) 2020.03.22
    oracle 뷰  (0) 2020.03.21

    댓글

Designed by Tistory.