2009. 3. 14. 03:42 Program.../Oracle
Oracle Function (함수생성)
---- Function (함수생성)
create or replace function f_tax
(v_sano in emp.empno%type)
return number --- 결과물 값을 해당 문자 타입으로 return시킨다.
is
v_yearpay number(6);
v_result number;
begin
select coalesce(sal*12+comm,sal*12,0) into v_yearpay
from emp
where empno = v_sano;
-- 일반적인 수식에서는 = 를쓰나
if v_yearpay >= 40000 then v_result := v_yearpay*0.1; -- 해당 변수에 값을 대입할때는
elsif v_yearpay >= 30000 then v_result := v_yearpay*0.08; -- ':=' 를 쓴다.
elsif v_yearpay >= 20000 then v_result := v_yearpay*0.05;
else v_result := v_yearpay*0.03;
end if;
return v_result;
end;
/
select empno, ename, f_tax(empno) tax
from emp
where f_tax(empno) > 1000;
--///////////////////////////////////////////////////////////////////////////////////////////--
--///////////////////////////////////////////////////////////////////////////////////////////--
/* 프로시저와 함수는 만드는 방법은 비슷하나 프로시저는 함수처럼 쿼리문 안에 넣을수 없고
결과값만 바로 출력해주는것이다. 함수는 쿼리문안에 넣어서 사용할 수 있다. */
'Program... > Oracle' 카테고리의 다른 글
Oracle Procedure (배열) (0) | 2009.03.14 |
---|---|
Oracle Procedure (loop, for loop) (0) | 2009.03.14 |
Oracle PL(Procedure Language)/SQL (0) | 2009.03.14 |
Oracle Sequence (0) | 2009.03.14 |
Oracle sqlldr 실습 및 Index (0) | 2009.03.14 |