프로그래밍 노트
(PL/SQL) about function
환상무빙
2009. 12. 2. 00:19
오라클 프로그래밍에 대해서 아무것도 모르는 상태에서 뭔가 하려니까 참 답답하다.
구글링 하면서 어찌어찌 짜집기 해서 원하는 기능을 구현하긴 했지만 제대로 돌아가고 있는건지는 좀 더 지켜봐야 할 듯.
function 생성하는 문법
function과 procedure의 가장 큰 차이점은 return값의 유무이다.
parameter를 선언하면서 좀 아리송 했던 부분은 varchar2(8) 이런 형태는 안된다는 것이다.
처음에는 왜 에러가 나는지도 몰랐다. 그냥 varchar2라고만 선언해야 한다.
아래처럼 하면 파라미터에 디폴트값을 설정할 수 있다.
function을 호출할 때 파라미터를 넘기는 방법에는 두 가지가 있다.
또는
처럼 하면 된다.
구글링 하면서 어찌어찌 짜집기 해서 원하는 기능을 구현하긴 했지만 제대로 돌아가고 있는건지는 좀 더 지켜봐야 할 듯.
function 생성하는 문법
CREATE [OR REPLACE] FUNCTION function_name [parameters]
RETURN return_datatype;
IS
Declaration_section
BEGIN
Execution_section
Return return_variable;
Return return_variable;
EXCEPTION
exception section
Return return_variable;
Return return_variable;
END;
function과 procedure의 가장 큰 차이점은 return값의 유무이다.
- function은 return값이 있어야 하지만 procedure는 return값이 없다.
parameter를 선언하면서 좀 아리송 했던 부분은 varchar2(8) 이런 형태는 안된다는 것이다.
처음에는 왜 에러가 나는지도 몰랐다. 그냥 varchar2라고만 선언해야 한다.
아래처럼 하면 파라미터에 디폴트값을 설정할 수 있다.
cp_id in number := 1
function을 호출할 때 파라미터를 넘기는 방법에는 두 가지가 있다.
fun_exists_data (cp_id in number, data_type in varchar2, date in varchar2)
라는 function을 호출하려면
-- 순서에 의한
fun_exists_data(1, 'G', '20091201')
fun_exists_data(1, 'G', '20091201')
또는
-- 이름에 의한
fun_exists_data(cp_id => 1, data_type => 'G', date => '20091201')
fun_exists_data(cp_id => 1, data_type => 'G', date => '20091201')
처럼 하면 된다.