사용자 도구

사이트 도구


기술문서:레퍼런스:쿼리:기본:객체:프로시저

차이

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

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
기술문서:레퍼런스:쿼리:기본:객체:프로시저 [2025/11/26 17:50]
carlito76
기술문서:레퍼런스:쿼리:기본:객체:프로시저 [2026/01/27 12:09] (현재)
carlito76
줄 11: 줄 11:
  
 ===== MySQL/MariaDB ===== ===== MySQL/MariaDB =====
-<sxh sql; gutter: true;> +<sxh sql; gutter: true; highlight: [38-39];> 
--- FIXME+/* 
 + MySQL 5.0.1 이상/MariaDB 5.1 이상 
 +*/ 
 +DELIMITER $$ 
 + 
 +-- 생성 
 +CREATE PROCEDURE {프로시저}( 
 + IN {입력변수} {타입}, -- IN 키워드 생략 가능 
 + OUT {출력변수} {타입}, 
 + INOUT {입출력변수} {타입} 
 +
 + {CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA} -- 생략 가능 
 +BEGIN 
 + DECLARE {변수} {타입}; 
 + 
 + /* 
 + 쿼리 작성 (트랜잭션 사용 가능) 
 + */ 
 +END 
 +$$ 
 + 
 +DELIMITER ; 
 + 
 +-- 삭제 
 +DROP PROCEDURE {프로시저}; 
 + 
 +/* 
 + MySQL 5.0.10 이상/MariaDB 5.1 이상 
 +*/ 
 +-- 삭제 
 +DROP PROCEDURE IF EXISTS {프로시저}; 
 + 
 +/* 
 + MariaDB 10.1.3 이상 
 +*/ 
 +DELIMITER $$ 
 + 
 +-- 생성/수정 
 +CREATE OR REPLACE PROCEDURE {프로시저}( 
 + IN {입력변수} {타입}, -- IN 키워드 생략 가능 
 + OUT {출력변수} {타입}, 
 + INOUT {입출력변수} {타입} 
 +
 + {CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA} -- 생략 가능 
 +BEGIN 
 + DECLARE {변수} {타입}; 
 + 
 + /* 
 + 쿼리 작성 (트랜잭션 사용 가능) 
 + */ 
 +END 
 +$$ 
 + 
 +DELIMITER ;
 </sxh> </sxh>
  
 ===== MSSQL ===== ===== MSSQL =====
-<sxh sql; gutter: true;> +<sxh sql; gutter: true; highlight: [8, 25, 44-45];> 
--- FIXME+/* 
 + MSSQL 7.0 이상 
 +*/ 
 +-- 생성 
 +CREATE PROCEDURE {프로시저} 
 + @{입력변수} {타입}, 
 + @{출력변수/입출력변수} {타입} OUTPUT, 
 + @{입력변수} {타입} READONLY -- Table-Valued Parameter / MSSQL 2008 이상 
 +AS 
 +BEGIN 
 + SET NOCOUNT ON; 
 + 
 + DECLARE @{변수} {타입}; 
 + 
 + /* 
 + 쿼리 작성 (트랜잭션 사용 가능) 
 + */ 
 +END; 
 +GO 
 + 
 +-- 수정 
 +ALTER PROCEDURE {프로시저} 
 + @{입력변수} {타입}, 
 + @{출력변수/입출력변수} {타입} OUTPUT, 
 + @{입력변수} {타입} READONLY -- Table-Valued Parameter / MSSQL 2008 이상 
 +AS 
 +BEGIN 
 + SET NOCOUNT ON; 
 + 
 + DECLARE @{변수} {타입}; 
 + 
 + /* 
 + 쿼리 작성 (트랜잭션 사용 가능) 
 + */ 
 +END; 
 +GO 
 + 
 +-- 삭제 
 +DROP PROCEDURE {프로시저}; 
 + 
 +/* 
 + MSSQL 2016 이상 
 +*/ 
 +-- 생성/수정 
 +CREATE OR ALTER PROCEDURE {프로시저} 
 + @{입력변수} {타입}, 
 + @{출력변수/입출력변수} {타입} OUTPUT, 
 + @{입력변수} {타입} READONLY -- Table-Valued Parameter 
 +AS 
 +BEGIN 
 + SET NOCOUNT ON; 
 + 
 + DECLARE @{변수} {타입}; 
 + 
 + /* 
 + 쿼리 작성 (트랜잭션 사용 가능) 
 + */ 
 +END; 
 +GO 
 + 
 +-- 삭제 
 +DROP PROCEDURE 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 PROCEDURE {프로시저} ( 
 +-- 생성/수정 
 +-- CREATE OR REPLACE PROCEDURE {프로시저} ( 
 + {입력변수} IN {타입}, -- IN 키워드 생략 가능 
 + {출력변수} OUT {타입}, 
 + {입출력변수} IN OUT {타입} 
 +
 +IS | AS 
 + {변수} {타입}; 
 +BEGIN 
 + /* 
 + 쿼리 작성 (트랜잭션 사용 가능) 
 + */ 
 +END; 
 +
 + 
 +-- 삭제 
 +DROP PROCEDURE {프로시저}; 
 + 
 +/* 
 + Oracle 23c 이상 
 +*/ 
 +-- 삭제 
 +DROP PROCEDURE IF EXISTS {프로시저};
 </sxh> </sxh>
  
 ===== PostgreSQL ===== ===== PostgreSQL =====
-<sxh sql; gutter: true;> +<sxh sql; gutter: true; highlight: [6-7];> 
--- FIXME+/* 
 + PostgreSQL 11.0 이상 
 +*/ 
 +-- 생성 
 +CREATE PROCEDURE {프로시저} ( 
 +-- 생성/수정 
 +-- CREATE OR REPLACE PROCEDURE {프로시저}( 
 + IN {입력변수} {타입}, -- IN 키워드 생략 가능 
 + OUT {출력변수} {타입}, 
 + INOUT {입출력변수} {타입} 
 +
 +AS $$ 
 +DECLARE 
 + {변수} {타입}; 
 +BEGIN 
 + /* 
 + 쿼리 작성 (트랜잭션 사용 가능) 
 + */ 
 +END; 
 +$$ LANGUAGE plpgsql; 
 + 
 +-- 삭제 
 +DROP PROCEDURE {프로시저}; 
 +DROP PROCEDURE IF EXISTS {프로시저};
 </sxh> </sxh>
  
 {{tag>"쿼리" "Query" "기본" "객체"}} {{tag>"쿼리" "Query" "기본" "객체"}}