오라클에서 주로 사용하는 것들은 사용자가 정의하여 함수로 만들어 놓고서 편하게 꺼내어 쓸 수 있는 기능이 있다. 바로 사용자 정의 함수 , FUNCTION 이다. 그렇다면, 이 FUNCTION 을 어떻게 만들고 , 어떻게 사용하는 지는 밑에서 간단한게 설명해보도록 하겠다.
-- [ 문법 ] --
-- create or replace function 함수명
-- ( 파라미터변수명 IN 파라미터변수의타입 ) ※주의할점:파라미터변수의 타입에는 크기를 입력하면 안된다.
-- return 리턴되어질타입
-- is --
-- 변수선언 ; ※주의할점: IS 뒤를 ()괄호로 묶는 실수를 했음.
-- begin --
-- 실행문 ;
-- return 리턴되어질값;
-- end 함수명 ;
위의 문법을 따라서, FUNCTION 문을 작성해야 한다. 나는 처음으로 FUNCTION 문을 작성할 때, 위의 주의사항에 적어둔 것들을 실수하여, 10분정도 내 코드를 보면서 에러를 고쳤었다. 이걸 보는 사람들은 그런 실수를 하지 않기를 바란다. 위에는 문법을 나타냈다면 , 밑에서 실제로 코드를 쓰고 결과값을 볼 수 있도록 하겠다. 우선, 그러기 위해서, 오라클의 샘플 코드에서 실행하도록 하겠다.
-- 해당 FUNCTION의 기능은 주민번호를 입력하면, 성별을 알아와주는 함수이다. --
create or replace function func_gender
( p_jubun IN varchar2 ) -- varchar2 (7) 와 같이 자리수를 쓰면 오류이다.!!!
return Nvarchar2 -- 파라미터와 return 에는 자리수를 쓰면 안된다.
is
v_result Nvarchar2(4) ; -- 여기에는 반드시 자리수를 써야 한다. !!!
begin
select case when substr(p_jubun,7,1) in ('1','3') then '남' else '여' end
INTO
v_result -- 결과를 v_result에 저장해준다.
from dual ;
return v_result ;
end func_gender ;
''국비지원'의 시작' 카테고리의 다른 글
오라클 비긴즈 11 ( 정규화 과정 ) (0) | 2023.02.21 |
---|---|
오라클 비긴즈 10 ( INDEX ) (0) | 2023.02.20 |
오라클 비긴즈 08 ( Constraints ( 제약 ) ) (0) | 2023.02.15 |
오라클 비긴즈 07 ( SQL (Structure Query Language) ) (0) | 2023.02.14 |
오라클 비긴즈 06 ( Set Operator [ UNION ] ) (0) | 2023.02.13 |