본문 바로가기

SQL/Oracle

[Oracle] 프로시저(procedure)

728x90

프로시저(procedure)
    - 자주 사용하는 SQL쿼리를 프로시저로 만든 뒤 필요할 때마다 호출하여 사용
    - 작업 효율을 늘릴 수 있음
    - 일종의 결과값을 반환하는 서브 프로그램

 

생성 방법

    create or replace procedure 프로시저 명(매개변수1[in|out] 데이터타입 ..)
    is
        선언문
    begin
        실행문
    end 프로시저 명;
    
    - in : 입력, out : 출력

 

 

주소 테이블 생성

create table tb_address(
    add_num number(7), -- 번호
    add_zipcode varchar2(5), -- 우편번호
    add_address varchar2(100) -- 주소
);

프로시저 생성

매개변수로 번호와 주소를 받고 우편번호를 '12345'로 지정하여 tb_address 테이블에 insert하는 프로시저 생성

create or replace procedure proc_address(
    p_add_num in number,
    p_add_address in varchar2
)
is
    p_add_zipcode varchar2(5) := '12345';
begin
    insert into tb_address(add_num, add_zipcode, add_address) values (p_add_num, p_add_zipcode, p_add_address);
end proc_address;

프로시저를 통해 데이터 insert

exec 프로시저명(값1, 값2 ...);

exec proc_address(1, '서울 서초구 양재동');

테이블 조회

select * from tb_address;

 

728x90

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

[Oracle] 트랜젝션(transaction)  (0) 2022.06.16
[Oracle] 프로시저 예제  (0) 2022.06.16
[Oracle] 예외 처리(Exception)  (0) 2022.06.16
[Oracle] 반복문  (0) 2022.06.16
[Oracle] 조건문  (0) 2022.06.16