KoreaIt Academy/Oracle DBMS

[Oracle] 프로시저(Procedure) 생성 및 실행 (PL/SQL)

hongeeii 2021. 8. 11.
728x90
반응형

프로시저란?

오라클에서의 프로시저는 PL/SQL을 통해 만들어집니다.

자주 사용하는 SQL을 프로시저로 만든 뒤 필요 할때마다 호출,사용하여 작업 효율을 늘릴 수 있습니다.

함수는 특정 연산을 수행한 뒤 결과 값을 반환하지만,

프로시저는 특정한 로직을 처리하기만 하고 결과 값은 반환하지 않는 서브 프로그램입니다.

 

PL/SQL이란

SQL의 확장된 개념으로 ORACLE에서 지원하는 프로그래밍 언어의 특성을 수용한 SQL의 확장입니다.

PL/SQL 블락 내에서 DML문과, 절차형 언어(IF, LOOP)등을 사용하여

절차적 프로그래밍을 가능하게 한 강력한 트랜잭션 언어입니다.

 

PL/SQL문 예제)

프로시저가 아닌 PL/SQL문에서는 변수의 선언을 DECLARE에서 선언합니다.

조건문의 사용 방법 : 1. IF [조건문] THEN [값] ELSE [값] END IF;

                           2. IF [조건문] THEN [값] ELSIF [조건문] THEN [값] ........ END IF;

 

DBMS_OUTPUT.PUT_LINE() : OUTPUT(콘솔창)에 작성하는 함수

 

 

 

프로시저의 생성

CREATE OR REPLACE PROCEDURE [프로시저명]
(
     매개변수 [ IN || OUT ] 타입; ----( ':=' 는 대입연산자, '%TYPE' 은 같은타입을 주겠다는 연산자')
 )
IS
     변수, 상수 선언
BEGIN
     실행될 내용
END;

프로시저 생성 예제)

위의 프로시저는 JOBS테이블의 컬럼과 같은 타입의 매개변수를 받아오고 CNT 변수를 선언합니다.

JOBS 테이블에서 매개변수 P_JOB_ID와 같은 값이 있는지 확인후에 INTO 키워드로 CNT변수에 값을 넣습니다.

 

CNT가 0이 아니라면 PRIMARY KEY가 있다는 뜻이므로 새로운 값으로 수정해줍니다.

CNT가 0이라면 새로운 값이 들어가게 되는것이므로 INSERT를 해줍니다.

 

 

프로시저 실행

프로시저 실행은 CALL 프로시저명; 이렇게 사용합니다.

 

 

프로시저 삭제

프로시저 삭제는 DROP PROCEDURE [프로시저명]; 이렇게 사용합니다.

728x90
반응형

추천 글