오라클 초급자 입니다... 함수관련해서 질문요ㅠ 0 4 2,251

by asw4900 [Oracle 기초] [2010.02.10 15:41:01]



현재일자를 가져오는 함수인데요..왜 안되는지 고수님들 설명좀 해주세요ㅠ

CREATE FUNCTION GET_TEST1_ASW(
V_DATE OUT VARCHAR2)
RETURN VARCHAR2
IS
BEGIN
SELECT TO_CHAR(SYSDATE, 'YYYYMMDD')
INTO V_DATE
FROM DUAL
RETURN V_DATE;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('에러입니다.');
END;
by 현 [2010.02.10 16:14:07]
SELECT 절 끝에 ; 이 빠졌네요.

CREATE FUNCTION GET_TEST1_ASW(
V_DATE OUT VARCHAR2)
RETURN VARCHAR2
IS
BEGIN
SELECT TO_CHAR(SYSDATE, 'YYYYMMDD')
INTO V_DATE
FROM DUAL ;
RETURN V_DATE;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('에러입니다.');
END;
/

제가 테스트 해 보니 잘 됩니다.

by 마농 [2010.02.10 16:19:24]
보통 함수에는 아웃변수 잘 안쓰죠.
쓸수 있긴 하지만 이미 함수의 특성상 리턴값을 무조건 반환해야 하므로 추가로 아웃변수를 사용하지는 않습니다.

by asw4900 [2010.02.10 16:29:55]
실행문을 어떻게 작성해야죠?;;;

EXECUTE GET_TEST1_ASW 라고 하면 되는거 아닌가요??

제가 프로시저부터 공부하고 와서 함수는 잘 모르겠어요ㅠㅠ 완전 초짜입니다ㅠㅠ

가르쳐주세요~

by 마농 [2010.02.10 17:14:24]
아웃변수는 리턴값과 중복되니 사용하지 마시구요.
var today varchar2(8);
exec :today := get_test1_asw;
http://www.gurubee.net/lecture/1042
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입