반응형
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';
반응형
'DB > SQL(오라클)' 카테고리의 다른 글
오라클(SQL)자료형(숫자자료형 ,정밀도,날짜 자료형 ) (0) | 2021.03.12 |
---|---|
오라클(SQL)데이터 타입 (0) | 2021.03.12 |
오라클(SQL)UPDATE문 (0) | 2021.03.12 |
오라클(SQL) DML (Data Manipulation Language) (0) | 2021.03.12 |
오라클(SQL) FOR문과 CURSOR (0) | 2021.03.12 |