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');