비디오 번호를 입력하면 대여한 고객이름, 대여일, 반납일, 비디오 이름을 화면에 출력하는 프로시저와 고객이름을 입력하면 대여일, 반납일, 비디오 이름을 화면에 출력하는 프로시저를 같은 이름으로 작성하는 패키지를 구성하여라.
CREATE OR REPLACE PACKAGE BODY CULREOCK147
IS
v_name cust.name%type;
v_rdate rent.rdate%type;
v_rrtdate rent.rrtdate%type;
v_vdoname video.vdoname%type;
v_vdono video.vdono%type;
PROCEDURE P148(VIDEONO IN NUMBER)
IS
CURSOR C148 IS
SELECT NAME, RDATE, RRTDATE, VDONAME
FROM CUST, RENT, VIDEO
WHERE R.RENT = V.VIDEO
AND R.VDOVO = VIDEONO;
BEGIN
OPEN C148;
LOOP
FETCH C148 INTO v_vdono;
EXIT WHEN C148 %NOTFOUND;
dbms_output.put_line(v_name || ', ' || v_rdate || ', ' || v_rrtdate || ', ' || v_vdoname);
END LOOP;
CLOSE C148;
END P148;
PROCEDURE P149(CUSTNAME IN VARCHAR2)
IS
CURSOR C149 IS
SELECT RDATE, RRTDATE, VDONAME
FROM CUST, RENT, VIDEO
WHERE R.RENT = V.VIDEO;
BEGIN
OPEN C149;
LOOP
FETCH C149 INTO v_name;
EXIT WHEN C149 %NOTFOUND;
dbms_output.put_line(v_rdate || ', ' || v_rrtdate || ', ' || v_vdoname);
END LOOP;
CLOSE C149;
END P149;
END CULREOCK147;
/
경고: 컴파일 오류와 함께 패키지 본문이 생성되었습니다.
SQL> SHOW ERROR
PACKAGE BODY CULREOCK147에 대한 오류:
LINE/COL ERROR
-------- -----------------------------------------------------------
11/2 PL/SQL: SQL Statement ignored
14/6 PL/SQL: ORA-00904: "R"."VDOVO": 부적합한 식별자
27/2 PL/SQL: SQL Statement ignored
29/8 PL/SQL: ORA-00904: "R"."RENT": 부적합한 식별자
29/26 PLS-00225: 부프로그램 혹은 커서 'V' 참조가 범위를 벗어납니다.
커서를 사용하라고 하던데 이렇게 에러가 나네요. 도와주세요?
댓글 0