Database
[PL/SQL] Function, Procedure
you90100
2019. 9. 11. 17:49
PL/SQL (Procedural Language/Structed Query Language)
- 데이터베이스 응용 프로그램을 작성하는데 사용하는 오라클의 SQL 전용 언어
- 장점: 프로그램 개발의 모듈화 가능, 변수 선언 가능, 절차형 언어 사용, 에러처리, 이식성, 성능 향상 ...
- PL/SGQ 프로그램 종류
- Subprogram: Function (Return a Value), Procedure(Do action)
- 자동실행 program: Trigger
- 복합 프로그램: Package
Function
- 반드시 하나의 값을 리턴해야하는 경우 사용
create or replace PROCEDURE p_tax
(v_num in number,
v_tax out number)
IS
BEGIN
v_tax := v_num * 0.07;
END;
Procedure
- 리턴값이 여러 개이거나 0개일 경우
- in / out / in out 으로 파라미터 타입과 전달 방식 명시
-- procedure: return 값 없음 대신 out으로 표기
create or replace PROCEDURE p_tax
(v_num in number,
v_tax out number)
IS
BEGIN
v_tax := v_num * 0.07;
END;
Command로 Procedure, Function 실행하기
-- FUNCTION Command 실행하는 방법
VARIABLE a NUMBER;
EXECUTE :a := TAX(100);
PRINT a;
-- PROCEDURE Command 실행하는 방법
VARIABLE a NUMBER;
EXECUTE p_tax(100, :a);
PRINT a;