CREATE OR REPLACE PROCEDURE SP_FRUIT
(
P_FRUIT_NAME IN VARCHAR,
P_FRUIT_QTY IN NUMBER
)
IS P_FRUIT_STORE VARCHAR(100) := '과일가게';
BEGIN
INSERT INTO FRUIT_SHOP
(
FRUIT_STORE
,FRUIT_NAME
,FRUIT_QTY
)VALUES(
P_FRUIT_STORE
,P_FRUIT_NAME
,P_FRUIT_QTY
)
COMMIT;
END SP_FRUIT;
테이블에 데이터를 입력하는 프로시저이다. 파라미터로 받을 값을 프로시저명을 뒤에 명시해주면 되고 변수를 선언할 일이 있으면 IS뒤에 써주면 된다. 동작은 BEGIN뒤에 명시하면 된다. INSERT말고도 SELECT, UPDATE를 원하는 동작을 하는 프로시저를 만들면 된다.
EXEC SP_FRUIT('복숭아', 200);
프로시저를 실행시킬대에는 EXEC[프로시저명]이라고 명시하면 된다.
CREATE OR REPLACE PROCEDURE SP_UPDATE_FRUIT_QTY
(
P_FRUIT IN VARCHAR2,
P_FRUIT_NO IN VARCHAR2,
P_FRUIT_QTY IN NUMBER,
O_CURSOR OUT VARCHAR2
)
IS
BEGIN
-- 수정 과일 대상 조회
BEGIN
OPEN o_cursor FOR
SELECT FRUIT_NO
, FRUIT_NAME
, FRUIT_QTY
FROM FRUIT
WHERE FRUIT_NO = P_FRUIT_NO;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('SQL ERROR MESSAGE: ' || SQLERRM);
END
END SP_UPDATE_FRUIT_QTY;
CREATE OR REPLACE FUNCTION FN_GET_FRUIT_NAME (P_FRUIT_NO NUMBER)
RETURN VARCHAR2
IS
V_FRUIT_NAME VARCHAR2(14);
BEGIN
SELECT FRUIT_NAME
INTO V_FRUIT_NAME
FROM FRUIT
WHERE FRUIT_NO = P_FRUIT_NO;
RETURN V_FRUIT_NAME;
END;