Database/SQL

[SQL] 함수

gangintheremark 2021. 12. 6. 05:01
728x90

함수

  • SP와 동일하게 데이터베이스에 저장되는 서브루틴이며 값을 리턴할 수 있다
  • 함수는 SQL 문장 내에서 사용 가능

[함수 정의]

CREATE\[OR REPLACE\] FUNCTION <function\_name> {  
  <arg1> \[IN|OUT|IN OUT\] (data\_type),  
  <arg2> \[IN|OUT|IN OUT\] (data\_type),  
   ...  
}  
IS|AS  
   ...  
   return data\_type;  
BEGIN  
   ...  
   return expression;  
END;

[함수 삭제]

DROP FUNCTION <function\_name>

[함수 카탈로그 정보]

  • ALL_OBJECTS : where 절 조건에 object_type = 'FUNCTION' 사용
  • USER_PROCEDURES : 사용자가 정의한 프로시저 및 함수
  • USER_SOURCE : 함수 소스 코드( 컴파일 에러 발생도 포함 )

🍀 함수 예시

CREATE OR REPLACE FUNCTION  
to_str(year NUMBER)  
IS  
str nvarchar2(10);  
BEGIN  
CASE year  
WHEN 1 THEN str := 'Fresh Man';  
WHEN 2 THEN str := 'Sophonmore';  
WHEN 3 THEN str := 'Junior';  
WHEN 4 THEN str := 'Senior';  
ELSE str := '???';  
END CASE;  
RETURN str;  
END;

select sname, to\_str(year) from STUDENT;

-- 실행결과  
-- >> 나수영 Senior  
-- 이찬수 Junior  
-- 정기태 Fresh Man
728x90