728x90
★ 저장 함수(Stored Function)
- 저장 프로시저와 동일
- 반환값이 반드시 존재 > out 파라미터 사용(X) > return 문 사용(O)
- out 파라미터 사용 안함 > out 동작 가능
- in 파라미터 사용함
- 이 특성때문에 함수는 프로시저와 조금 다른 상황에서 사용
■ 사용 ex)
- ex 1) 선언
create or replace function fnSum (
pnum1 in number,
pnum2 in number
) return number
is
begin
return pnum1 + pnum2;
end fnSum;
- 호출 방법 1
declare
vresult number;
begin
-- 프로시저 out > 개수 1개 이상
-- 함수 return > 개수 딱 1개
vresult := fnSum(10,20);
dbms_output.put_line(vresult);
end;
- 호출 방법 2
select
height, weight,
height + weight,
fnSum(height, weight) -- 프로시저 저장 함수는 ANSI-SQL에서 사용할 수 있음.
--procSum(height,weight) -- 프로시저 저장 프로시저는 ANSI-SQL에서 사용할 수 없음.
from tblComedian;
- ex2) 인사 테이블 > 이름, 부서, 직위, 성별(남자|여자)
- case end 문을 이용한 방법
select
name, buseo, jikwi,
case substr(ssn,8,1)
when '1' then '남자'
when '2' then '여자'
end as gender
from tblInsa;
select
name, basicpay,
case substr(ssn,8,1)
when '1' then '남자'
when '2' then '여자'
end as gender
from tblInsa;
- 저장함수를 사용한 방법
create or replace function fnGender (
pssn varchar2
) return varchar2
is
begin
return case substr(pssn,8,1)
when '1' then '남자'
when '2' then '여자'
end;
end fnGender;
/
-- 실행
select
name, basicpay,
fnGender(ssn) as Gender
from tblInsa;
728x90
'데이터베이스' 카테고리의 다른 글
DATABASE STEP 35 - INDEX (0) | 2023.03.30 |
---|---|
DATABASE STEP 34 - TRIGGER (0) | 2023.03.29 |
DATABASE STEP 32 - PROCEDURE (0) | 2023.03.28 |
DATABASE STEP 31 - PL/SQL (0) | 2023.03.27 |
DATABASE SEMI PROJECT - MOVIE RANK DATA (0) | 2023.03.24 |