사용자 도구

사이트 도구


기술문서:레퍼런스:쿼리:기본:객체:함수

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

다음 판
이전 판
기술문서:레퍼런스:쿼리:기본:객체:함수 [2025/04/24 11:25]
carlito76 만듦
기술문서:레퍼런스:쿼리:기본:객체:함수 [2026/01/27 13:58] (현재)
carlito76
줄 1: 줄 1:
 {{htmlmetatags> {{htmlmetatags>
-metatag-description=(함수, Function, 데이터베이스, DBMS, SQL, MySQL, MariaDB, MSSQL, Oracle, Tibero, PostgreSQL) +metatag-description=(함수 생성, 함수 수정, 함수 삭제, Function, 데이터베이스, DBMS, SQL, MySQL, MariaDB, MSSQL, Oracle, Tibero, PostgreSQL) 
-metatag-og:description=(함수, Function, 데이터베이스, DBMS, SQL, MySQL, MariaDB, MSSQL, Oracle, Tibero, PostgreSQL)+metatag-og:description=(함수 생성, 함수 수정, 함수 삭제, Function, 데이터베이스, DBMS, SQL, MySQL, MariaDB, MSSQL, Oracle, Tibero, PostgreSQL)
 }} }}
  
-====== 뷰 생성 ======+====== 함수 ====== 
 + 
 +<note tip> 
 +최소 지원 버전은 약간의 차이가 있을 수 있습니다. 
 +</note>
  
 ===== MySQL/MariaDB ===== ===== MySQL/MariaDB =====
-<sxh sql; gutter: true;> +<sxh sql; gutter: true; highlight: [41-42];> 
--- FIXME+/* 
 + MySQL 5.0.2 이상/MariaDB 5.1 이상 
 +*/ 
 +DELIMITER $$ 
 + 
 +-- 생성 
 +CREATE FUNCTION {함수}( 
 + IN {입력변수} {타입} -- IN 키워드 생략 가능 
 +
 +RETURNS {리턴 타입} 
 + {DETERMINISTIC | NOT DETERMINISTIC} 
 + {CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA} -- 생략 가능 
 +BEGIN 
 + DECLARE {변수} {타입}; 
 + 
 + /* 
 + 쿼리 작성 (트랜잭션 사용 제약) 
 + */ 
 + 
 + RETURN {리턴 값}; 
 + -- RETURN {변수}; 
 +END 
 +$$ 
 + 
 +DELIMITER ; 
 + 
 +-- 삭제 
 +DROP FUNCTION {함수}; 
 + 
 +/* 
 + MySQL 5.0.10 이상/MariaDB 5.1 이상 
 +*/ 
 +-- 삭제 
 +DROP FUNCTION IF EXISTS {함수}; 
 + 
 +/* 
 + MariaDB 10.1.3 이상 
 +*/ 
 +DELIMITER $$ 
 + 
 +-- 생성/수정 
 +CREATE OR REPLACE FUNCTION {함수}( 
 + IN {입력변수} {타입} -- IN 키워드 생략 가능 
 +
 +RETURNS {리턴 타입} 
 + {DETERMINISTIC | NOT DETERMINISTIC} 
 + {CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA} -- 생략 가능 
 +BEGIN 
 + DECLARE {변수} {타입}; 
 + 
 + /* 
 + 쿼리 작성 (트랜잭션 사용 제약) 
 + */ 
 + 
 + RETURN {리턴 값}; 
 + -- RETURN {변수}; 
 +END 
 +$$ 
 + 
 +DELIMITER ;
 </sxh> </sxh>
  
 ===== MSSQL ===== ===== MSSQL =====
-<sxh sql; gutter: true;> +<sxh sql; gutter: true; highlight: [44-45];> 
--- FIXME+/* 
 + MSSQL 2000 이상 
 +*/ 
 +-- 생성 
 +CREATE FUNCTION {함수}( 
 + @{입력변수} {타입} 
 +
 +RETURNS {리턴 타입} AS 
 +BEGIN 
 + DECLARE @{변수} {타입}; 
 + 
 + /* 
 + 쿼리 작성 (트랜잭션 사용 제약) 
 + */ 
 + 
 + RETURN {리턴 값}; 
 + -- RETURN @{변수}; 
 +END; 
 +GO 
 + 
 +-- 수정 
 +ALTER FUNCTION {함수}( 
 + @{입력변수} {타입} 
 +
 +RETURNS {리턴 타입} AS 
 +BEGIN 
 + DECLARE @{변수} {타입}; 
 + 
 + /* 
 + 쿼리 작성 (트랜잭션 사용 제약) 
 + */ 
 + 
 + RETURN {리턴 값}; 
 + -- RETURN @{변수}; 
 +END; 
 +GO 
 + 
 +-- 삭제 
 +DROP FUNCTION {함수}; 
 + 
 +/* 
 + MSSQL 2016 이상 
 +*/ 
 +-- 생성/수정 
 +CREATE OR ALTER FUNCTION {함수}( 
 + @{입력변수} {타입} 
 +
 +RETURNS {리턴 타입} AS 
 +BEGIN 
 + DECLARE @{변수} {타입}; 
 + 
 + /* 
 + 쿼리 작성 (트랜잭션 사용 제약) 
 + */ 
 + 
 + RETURN {리턴 값}; 
 + -- RETURN @{변수}; 
 +END; 
 +GO 
 + 
 +-- 삭제 
 +DROP FUNCTION IF EXISTS {함수};
 </sxh> </sxh>
  
 ===== Oracle/Tibero ===== ===== Oracle/Tibero =====
-<sxh sql; gutter: true;> +<sxh sql; gutter: true; highlight: [6-7];> 
--- FIXME+/* 
 + Oracle 8i 이상/Tibero 5 이상 
 +*/ 
 +-- 생성 
 +CREATE FUNCTION {함수} ( 
 +-- 생성/수정 
 +-- CREATE OR REPLACE FUNCTION {함수} ( 
 + {입력변수} IN {타입} -- IN 키워드 생략 가능 
 +
 +RETURN {리턴 타입} IS | AS 
 + {변수} {타입}; 
 +BEGIN 
 + /* 
 + 쿼리 작성 (트랜잭션 사용 제약) 
 + */ 
 + 
 + RETURN {리턴 값}; 
 + -- RETURN {변수}; 
 +END; 
 +
 + 
 +-- 삭제 
 +DROP FUNCTION {함수}; 
 + 
 +/* 
 + Oracle 23c 이상 
 +*/ 
 +-- 삭제 
 +DROP FUNCTION IF EXISTS {함수};
 </sxh> </sxh>
  
 ===== PostgreSQL ===== ===== PostgreSQL =====
-<sxh sql; gutter: true;> +<sxh sql; gutter: true; highlight: [6-7, 10, 21, 31-32, 35, 46];> 
--- FIXME+/* 
 + PostgreSQL 7.3 이상 (Single Quote 방식) 
 +*/ 
 +-- 생성 
 +CREATE FUNCTION {함수} ( 
 +-- 생성/수정 
 +-- CREATE OR REPLACE FUNCTION {함수}( 
 + IN {입력변수} {타입} -- IN 키워드 생략 가능 
 +
 +RETURNS {리턴 타입} AS ' 
 +DECLARE 
 + {변수} {타입}; 
 +BEGIN 
 + /* 
 + 쿼리 작성 (트랜잭션 사용 제약) 
 + */ 
 + 
 + RETURN {리턴 값}; 
 + -- RETURN {변수}; 
 +END; 
 +' LANGUAGE plpgsql; 
 + 
 +-- 삭제 
 +DROP FUNCTION {함수}; 
 + 
 +/* 
 + PostgreSQL 8.0 이상 (Dollar Quoting 방식) 
 +*/ 
 +-- 생성 
 +CREATE FUNCTION {함수} ( 
 +-- 생성/수정 
 +-- CREATE OR REPLACE FUNCTION {함수}( 
 + IN {입력변수} {타입} -- IN 키워드 생략 가능 
 +
 +RETURNS {리턴 타입} AS $$ 
 +DECLARE 
 + {변수} {타입}; 
 +BEGIN 
 + /* 
 + 쿼리 작성 (트랜잭션 사용 제약) 
 + */ 
 + 
 + RETURN {리턴 값}; 
 + -- RETURN {변수}; 
 +END; 
 +$$ LANGUAGE plpgsql; 
 + 
 +/* 
 + PostgreSQL 8.2 이상 
 +*/ 
 +-- 삭제 
 +DROP FUNCTION IF EXISTS {함수};
 </sxh> </sxh>
 +
 +{{tag>"쿼리" "Query" "기본" "객체"}}