본문 바로가기
DB/SQL(오라클)

PL/SQL의 종류 Stored procedure

by redbear0077 2021. 3. 12.
반응형

Stored procedure

테이블 다운로드

 

-컴파일된 버전은 프로시져 캐시에 저장된다.

 

사용 예)

/
--테이블생성
PROD_TOTALATOCK(재고수량)을 추가함
CREATE OR REPLACE PROCEDURE USP_PROD_TOTALSTOCK_UPDATE
    (V_PROD IN PROD.PROD_ID%TYPE,
     V_QTY IN PROD.PROD_TOTALSTOCK%TYPE)
IS
BEGIN
    UPDATE PROD SET PROD_TOTALSTOCK = PROD_TOTALSTOCK + V_QTY
    WHERE PROD_ID = V_PROD;
    DBMS_OUTPUT.PUT_LINE('업데이트 성공');
END;
/
--추가한다
EXECUTE USP_PROD_TOTALSTOCK_UPDATE('P101000001',10);
/
--보여준다.
SELECT  PROD_ID, PROD_TOTALSTOCK 
FROM    PROD 
WHERE   PROD_ID = 'P101000001';
/
--전으로 돌아간다
ROLLBACK;

사용예 )

  회원아이디(MEM_ID)및 점수를 입력받아 마일리지 점수 (MEM_MILEAGE)를 
  업데이트 하는 프로시저 (USP_MEMBER_UPDATE)를 생성하기
  EXECUTE를 통해 김은대 (a001)회원의 마일리지 값을
  100씩 추가하여 5회에 걸쳐 500으로 올리기

CREATE OR REPLACE PROCEDURE MEM_PROD_TOTALSTOCK_UPDATE(
    P_ID IN VARCHAR2,P_MILEAGE IN NUMBER
)
IS

BEGIN
    UPDATE MEMBER SET MEM_MILEAGE = MEM_MILEAGE + 100
    WHERE MEM_ID = P_ID;
    DBMS_OUTPUT.PUT_LINE('업데이트 성공');
END;
/

EXECUTE MEM_PROD_TOTALSTOCK_UPDATE('a001',100);
/
SELECT  MEM_ID, MEM_MILEAGE 
FROM    MEMBER 
WHERE   MEM_ID = 'a001';
반응형