문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
|
기술문서:레퍼런스:쿼리:기본:객체:함수 [2026/01/23 16:42] carlito76 |
기술문서:레퍼런스:쿼리:기본:객체:함수 [2026/01/27 13:58] (현재) carlito76 |
||
|---|---|---|---|
| 줄 11: | 줄 11: | ||
| ===== MySQL/ | ===== MySQL/ | ||
| - | <sxh sql; gutter: true;> | + | <sxh sql; gutter: true; highlight: [41-42];> |
| /* | /* | ||
| MySQL 5.0.2 이상/ | MySQL 5.0.2 이상/ | ||
| 줄 18: | 줄 18: | ||
| -- 생성 | -- 생성 | ||
| - | CREATE FUNCTION {함수}() | + | CREATE FUNCTION {함수}( |
| - | RETURNS {리턴 타입} | + | IN {입력변수} {타입} -- IN 키워드 생략 가능 |
| + | ) | ||
| + | RETURNS {리턴 타입} | ||
| {DETERMINISTIC | NOT DETERMINISTIC} | {DETERMINISTIC | NOT DETERMINISTIC} | ||
| - | {CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA} | + | {CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA} -- 생략 가능 |
| BEGIN | BEGIN | ||
| + | DECLARE {변수} {타입}; | ||
| + | |||
| /* | /* | ||
| - | 쿼리 작성 | + | 쿼리 작성 |
| */ | */ | ||
| + | |||
| RETURN {리턴 값}; | RETURN {리턴 값}; | ||
| + | -- RETURN {변수}; | ||
| END | END | ||
| $$ | $$ | ||
| 줄 47: | 줄 53: | ||
| -- 생성/ | -- 생성/ | ||
| - | CREATE OR REPLACE FUNCTION {함수}() | + | CREATE OR REPLACE FUNCTION {함수}( |
| - | RETURNS {리턴 타입} | + | IN {입력변수} {타입} -- IN 키워드 생략 가능 |
| + | ) | ||
| + | RETURNS {리턴 타입} | ||
| {DETERMINISTIC | NOT DETERMINISTIC} | {DETERMINISTIC | NOT DETERMINISTIC} | ||
| - | {CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA} | + | {CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA} -- 생략 가능 |
| BEGIN | BEGIN | ||
| + | DECLARE {변수} {타입}; | ||
| + | |||
| /* | /* | ||
| - | 쿼리 작성 | + | 쿼리 작성 |
| */ | */ | ||
| + | |||
| RETURN {리턴 값}; | RETURN {리턴 값}; | ||
| + | -- RETURN {변수}; | ||
| END | END | ||
| $$ | $$ | ||
| 줄 63: | 줄 75: | ||
| ===== 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 {함수}; | ||
| </ | </ | ||
| ===== Oracle/ | ===== Oracle/ | ||
| - | <sxh sql; gutter: true;> | + | <sxh sql; gutter: true; highlight: [6-7];> |
| - | -- FIXME | + | /* |
| + | Oracle 8i 이상/ | ||
| + | */ | ||
| + | -- 생성 | ||
| + | CREATE FUNCTION {함수} ( | ||
| + | -- 생성/ | ||
| + | -- CREATE OR REPLACE FUNCTION {함수} ( | ||
| + | {입력변수} IN {타입} -- IN 키워드 생략 가능 | ||
| + | ) | ||
| + | RETURN {리턴 타입} IS | AS | ||
| + | {변수} {타입}; | ||
| + | BEGIN | ||
| + | /* | ||
| + | 쿼리 작성 (트랜잭션 사용 제약) | ||
| + | */ | ||
| + | |||
| + | RETURN {리턴 값}; | ||
| + | -- RETURN {변수}; | ||
| + | END; | ||
| + | / | ||
| + | |||
| + | -- 삭제 | ||
| + | DROP FUNCTION {함수}; | ||
| + | |||
| + | /* | ||
| + | Oracle 23c 이상 | ||
| + | */ | ||
| + | -- 삭제 | ||
| + | DROP FUNCTION IF EXISTS {함수}; | ||
| </ | </ | ||
| ===== 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 {함수}; | ||
| </ | </ | ||
| {{tag>" | {{tag>" | ||