DECLARE -- 사원 이름을 출력하기 위한 PL/SQL 테이블 선언 TYPE ename_table IS TABLE OF emp.ename%TYPE INDEX BY BINARY_INTEGER; -- 사원 급여를 출력하기 위한 PL/SQL 테이블 선언 TYPE sal_table IS TABLE OF emp.sal%TYPE INDEX BY BINARY_INTEGER; ename_tab ename_table; sal_tab sal_table; i BINARY_INTEGER := 0; BEGIN DBMS_OUTPUT.ENABLE; FOR emp_list IN (SELECT ename, sal FROM emp WHERE deptno = 10) LOOP i := i +1 ; -- 테이블에 상품 이름을 저장 ename_tab(i) := emp_list.ename; -- 테이블에 상품 가격을 저장 sal_tab(i) := emp_list.sal; END LOOP; -- 화면에 출력 FOR cnt IN 1..i LOOP DBMS_OUTPUT.PUT_LINE('사원이름 : ' || ename_tab(cnt)); DBMS_OUTPUT.PUT_LINE('사원급여 : ' || sal_tab(cnt)); END LOOP; END; / 사원이름 : CLARK 사원급여 : 2450 사원이름 : KING 사원급여 : 5000 사원이름 : MILLER 사원급여 : 1300
- 강좌 URL : http://www.gurubee.net/lecture/1056
- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.
아래처럼 변경해서 실행했더니 결과가 잘 나오네요 맞는거겠져?
CREATE OR REPLACE PROCEDURE emp_list
(v_deptno IN emp.deptno%TYPE )
IS
-- 사원 이름을 출력하기 위한 PL/SQL 테이블 선언
TYPE ename_table IS TABLE OF emp.ename%TYPE
INDEX BY BINARY_INTEGER;
-- 사원 급여를 출력하기 위한 PL/SQL 테이블 선언
TYPE sal_table IS TABLE OF emp.sal%TYPE
INDEX BY BINARY_INTEGER;
ename_tab ename_table;
sal_tab sal_table;
i BINARY_INTEGER := 0;
BEGIN
DBMS_OUTPUT.ENABLE;
FOR emp_list IN ( SELECT ename, sal
FROM emp
WHERE deptno = v_deptno) LOOP
i := i +1 ;
-- 테이블에 상품 이름을 저장
ename_tab(i) := emp_list.ename;
-- 테이블에 상품 가격을 저장
sal_tab(i) := emp_list.sal;
END LOOP;
-- 화면에 출력
FOR cnt IN 1..i LOOP
DBMS_OUTPUT.PUT_LINE('사원이름 : ' || ename_tab(cnt));
DBMS_OUTPUT.PUT_LINE('사원급여 : ' || sal_tab(cnt));
END LOOP;
END ;
/