SQLD 기출문제 예상문제 208번
다음 문제를 풀어보세요.
다음 중 아래 SQL에 대한 설명으로 가장 적절한 것을 고르시오.
-- PROCEDURE 생성
CREATE OR REPLACE PROCEDURE GET_CUSTOMER_INFO (
P_CUSTOMER_ID IN CUSTOMER.CUSTOMER_ID%TYPE,
P_CUSTOMER_NAME OUT CUSTOMER.CUSTOMER_NAME%TYPE,
P_CUSTOMER_GRADE OUT CUSTOMER.CUSTOMER_GRADE%TYPE
) AS
BEGIN
SELECT CUSTOMER_NAME, CUSTOMER_GRADE
INTO P_CUSTOMER_NAME, P_CUSTOMER_GRADE
FROM CUSTOMER
WHERE CUSTOMER_ID = P_CUSTOMER_ID;
EXCEPTION
WHEN NO_DATA_FOUND THEN
P_CUSTOMER_NAME := NULL;
P_CUSTOMER_GRADE := NULL;
WHEN OTHERS THEN
RAISE;
END;
/
-- PROCEDURE 호출
DECLARE
V_CUSTOMER_NAME CUSTOMER.CUSTOMER_NAME%TYPE;
V_CUSTOMER_GRADE CUSTOMER.CUSTOMER_GRADE%TYPE;
BEGIN
GET_CUSTOMER_INFO(100, V_CUSTOMER_NAME, V_CUSTOMER_GRADE);
DBMS_OUTPUT.PUT_LINE('Customer Name: ' || V_CUSTOMER_NAME || ', Grade: ' || V_CUSTOMER_GRADE);
END;
/
CREATE TABLE CUSTOMER (
CUSTOMER_ID NUMBER PRIMARY KEY,
CUSTOMER_NAME VARCHAR2(50),
CUSTOMER_GRADE VARCHAR2(10)
);
INSERT INTO CUSTOMER (CUSTOMER_ID, CUSTOMER_NAME, CUSTOMER_GRADE) VALUES (100, '홍길동', 'VIP');
INSERT INTO CUSTOMER (CUSTOMER_ID, CUSTOMER_NAME, CUSTOMER_GRADE) VALUES (200, '김철수', 'Gold');