<샘플코드에서 사용한 데이터는 HR 스키마이고, 오라클 설치시 생성할 수 있는 기본 스키마 입니다>
경우에 따라서 바디가 없는 패키지를 만들때가 있다. 아래와 같은 경우가 그러하다
# we can create package specification without body
# this used when we want to define global variable
create or replace package global_Measurement
is
c_mile_to_km constant number:=1.6093;
c_kilo_to_mile constant number:=0.6214;
end;
execute dbms_output.put_line('60 mile:='||60* global_Measurement.c_mile_to_km||' KM' );
----------------------------------------------------------------
60 mile:=96.558 KM
execute dbms_output.put_line('100 KM:='||100* global_Measurement.c_kilo_to_mile||' Mile' );
----------------------------------------------------------------
100 KM:=62.14 Mile
# 상수 패키지를 참고하는 함수 샘플
# now i can create function that read form this package
create or replace function get_mile_to_km
( p_value number )
return number
is
begin
return p_value* global_Measurement.c_mile_to_km;
end;
select get_mile_to_km(100) from dual;
-----------------------------------------------------
GET_MILE_TO_KM(100)
-------------------
160.93
# very good thing you should know
# you can define a procedure or function inside pl/sql block
# but this will be used only in this block
# 다른 블록이나 패키지에서는 get_sysdate 함수에 접근이 불가함.
# 로컬함수 또는 private 함수라고 부른다
declare
function get_sysdate
return date
is
begin
return sysdate;
end;
begin
dbms_output.put_line(get_sysdate);
end;
'Database > PLSQL' 카테고리의 다른 글
048 - [Oracle PL/SQL] Package - visibility of components (0) | 2024.02.28 |
---|---|
047 - [Oracle PL/SQL] Package - guidelines for packages (0) | 2024.02.28 |
045 - [Oracle PL/SQL] Package - Sample (0) | 2024.02.27 |
044 - [Oracle PL/SQL] Package (0) | 2024.02.27 |
043 - [Oracle PL/SQL] Restrictions when calling functions (0) | 2024.02.24 |