본문 바로가기

Database/PLSQL

034 - [Oracle PL/SQL] Procedure - (IN OUT parameter)

<샘플코드에서 사용한 데이터는 HR 스키마이고, 오라클 설치시 생성할 수 있는 기본 스키마 입니다>

 

 

 

 

 

 

 

 

--assume the lenght for tel is 12
--example 971505914988
--we need a procedure to format the 971505914988 to 971(50)5914988

create or replace procedure formate_tel
    (p_tel in out varchar2)
is
begin
    p_tel:=substr(p_tel,1,3)||'('||substr(p_tel,4,2)||')'||substr(p_tel,7);
end;
----------------
Procedure FORMATE_TEL compiled

 

 

 

variable b_telephone varchar2(20);

--변수에 값을 입력할때 아래처럼 해야함, 변수명앞에 : 넣어야 오류가 없음.
execute :b_telephone:='971505914988';

execute formate_tel(:b_telephone);

print b_telephone;
-------------------------------------------
    B_TELEPHONE
    --------------------
    971(50)914988

 

 

 

--another way
declare
    v_tel varchar2(100):='971505914988';
begin
    formate_tel(v_tel);
    dbms_output.put_line(v_tel);
end;
-------------------------------------------
971(50)914988