Oracle/PL_SQL2009. 11. 17. 17:47
overloading이란?
같은 이름의 프로시져, 함수가 파라미터만 다르게 해서 여러개가 정의 가능합니다.


테스트를 하기 위해 테이블과 시퀀스를 생성합니다.

drop table t1 purge;
create table t1(col1 number, col2 number);

create sequence t1_col1_seq
start with 9999;





create or replace package over_pack
is
  procedure t1_insert_proc
    (p1 number,
     p2 number);
  procedure t1_insert_proc
    (p2 number);
end;
/

create or replace package body over_pack
is
    procedure t1_insert_proc
        (p1 number,
        p2 number)
    is
    begin
        insert into t1 values (p1, p2);
    end;

    procedure t1_insert_proc
        (p2 number)
    is
    begin
        insert into t1 values (t1_col1_seq.nextval, p2);
    end;
end;
/


패키지내의 하나씩 프로시져를 실행해본다.

exec over_pack.t1_insert_proc(10,100);
commit;

결과화면

COL1 COL2
10 100



두번째 프로시져를 실행해본다.

exec over_pack.t1_insert_proc(100);
commit;

결과화면
COL1 COL2
10 100
9999 100

서로 다른 프로시져가 실행된 것을 확인할 수 있다.

이것은 supplied package인 dbms_output에서도 확인가능하다.

dbms_output.put_line(1);

dbms_output.put_line('1');

'Oracle > PL_SQL' 카테고리의 다른 글

print_table프로시져 만들기  (0) 2009.11.18
trigger  (0) 2009.11.17
테이블 변경시 관련 procedure, function, package 확인  (0) 2009.11.16
wrap pld  (0) 2009.11.16
Exception handling  (0) 2009.11.13
Posted by 자수성가한 부자