728x90
# OVERLOAD
4장. 패키지의 오버로딩
- 아래의 구현을 가능하게 하려면 패키지의 오버로딩 기능을 이용해야한다
- exec sal_rank(1,3); -- 대기업 연봉순위 1위부터 3위까지 나오는 프로시져
- exec sal_rank(1); -- 매개변수 하나만 입력하면 1위만 나오는 프로시져
- 같은 이름의 프로시져 이름을 가지면서 동시에 다른 매개변수를 갖도록 하는 것을 의미한다
문제185. 아래의 명령어가 가능하도록 아래의 소스를 고치시오
exec sal_pack.sal_rank(1,5);
exec sal_pack.sal_rank(1);
CREATE OR REPLACE PACKAGE sal_pack AS
PROCEDURE SAL_RANK(p_rank NUMBER, p_rank2 number);
END sal_pack;
/
CREATE OR REPLACE PACKAGE BODY sal_pack AS
PROCEDURE SAL_RANK(p_rank NUMBER, p_rank2 number) IS
CURSOR emp_sal_cursor IS
SELECT t_name, t_sal, 순위
FROM (SELECT t_name, t_sal, RANK() OVER(ORDER BY t_sal desc) 순위 FROM emp_sal)
WHERE 순위 BETWEEN p_rank AND p_rank2;
BEGIN
FOR emp_record IN emp_sal_cursor LOOP
dbms_output.put_line('순위 ' || emp_record.순위 ||' '||emp_record.t_name);
dbms_output.put_line('순위 ' || emp_record.순위 ||' '||emp_record.t_sal);
END LOOP;
END SAL_RANK;
END sal_pack;
/
------------------------------------------------------------------------------------------------
CREATE OR REPLACE PACKAGE sal_pack AS
PROCEDURE SAL_RANK(p_rank NUMBER);
PROCEDURE SAL_RANK(p_rank NUMBER, p_rank2 number);
END sal_pack;
/
CREATE OR REPLACE PACKAGE BODY sal_pack AS
PROCEDURE SAL_RANK(p_rank NUMBER) IS
CURSOR emp_sal_cursor IS
SELECT t_name, t_sal, 순위
FROM (SELECT t_name, t_sal, RANK() OVER(ORDER BY t_sal desc) 순위 FROM emp_sal)
WHERE 순위=p_rank;
BEGIN
FOR emp_record IN emp_sal_cursor LOOP
dbms_output.put_line('순위 ' || emp_record.순위 ||' '||emp_record.t_name);
dbms_output.put_line('순위 ' || emp_record.순위 ||' '||emp_record.t_sal);
END LOOP;
END SAL_RANK;
PROCEDURE SAL_RANK(p_rank NUMBER, p_rank2 number) IS
CURSOR emp_sal_cursor IS
SELECT t_name, t_sal, 순위
FROM (SELECT t_name, t_sal, RANK() OVER(ORDER BY t_sal desc) 순위 FROM emp_sal)
WHERE 순위 BETWEEN p_rank AND p_rank2;
BEGIN
FOR emp_record IN emp_sal_cursor LOOP
dbms_output.put_line('순위 ' || emp_record.순위 ||' '||emp_record.t_name);
dbms_output.put_line('순위 ' || emp_record.순위 ||' '||emp_record.t_sal);
END LOOP;
END SAL_RANK;
END sal_pack;
/
'빅데이터과정 > PL/SQL ' 카테고리의 다른 글
#16_140704_PL_SQL_종속성 (0) | 2014.07.15 |
---|---|
#15_140703_PL_SQL_암호화 (0) | 2014.07.15 |
#15_140703_PL_SQL_PACKAGE (0) | 2014.07.15 |
#14_140702_PL_SQL_TRIGGER (0) | 2014.07.15 |
#14_140702_PL_SQL_RETURNING (0) | 2014.07.15 |