사용자 도구

사이트 도구


사이드바

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

문서의 이전 판입니다!


프로시저

최소 지원 버전은 약간의 차이가 있을 수 있습니다.

MySQL/MariaDB

/*
	MySQL 5.0.1 이상/MariaDB 5.1 이상
*/
DELIMITER $$

-- 생성
CREATE PROCEDURE {프로시저}(
	-- IN {입력변수} {타입},
	-- OUT {출력변수} {타입},
	-- INOUT {입출력변수} {타입}
)
	{CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA}
BEGIN
	/*
		쿼리 작성 (트랜잭션 사용 가능)
	*/
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 {입력변수} {타입},
	-- OUT {출력변수} {타입},
	-- INOUT {입출력변수} {타입}
)
	{CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA}
BEGIN
	/*
		쿼리 작성 (트랜잭션 사용 가능)
	*/
END
$$

DELIMITER ;

MSSQL

/*
	MSSQL 2000 이상
*/
-- 생성
CREATE PROCEDURE {프로시저}
	-- @{입력변수} {타입},
	-- @{출력변수/입출력변수} {타입} OUTPUT,
	-- @{입력변수} {타입} READONLY
AS
BEGIN
	SET NOCOUNT ON;
	/*
		쿼리 작성 (트랜잭션 사용 가능)
	*/
END;
GO

-- 삭제
DROP PROCEDURE {프로시저};

/*
	MSSQL 2016 이상
*/
-- 생성/수정
CREATE OR ALTER PROCEDURE {프로시저}
	-- @{입력변수} {타입},
	-- @{출력변수/입출력변수} {타입} OUTPUT,
	-- @{입력변수} {타입} READONLY
AS
BEGIN
	SET NOCOUNT ON;
	/*
		쿼리 작성 (트랜잭션 사용 가능)
	*/
END;
GO

-- 삭제
DROP PROCEDURE IF EXISTS {프로시저};

Oracle/Tibero

/*
	Oracle 8i 이상/Tibero 5 이상
*/
-- 생성/수정
CREATE OR REPLACE PROCEDURE {프로시저} (
	-- {입력변수} IN {타입},
	-- {출력변수} OUT {타입},
	-- {입출력변수} INOUT {타입}
)
IS | AS
	-- 변수 선언
BEGIN
	/*
		쿼리 작성 (트랜잭션 사용 가능)
	*/
END;
/

-- 삭제
DROP PROCEDURE {프로시저};

/*
	Oracle 23c 이상
*/
-- 삭제
DROP PROCEDURE IF EXISTS {프로시저};

PostgreSQL

/*
	PostgreSQL 11.0 이상
*/
-- 생성/수정
CREATE OR REPLACE PROCEDURE {프로시저}(
	-- IN {입력변수} {타입},
	-- OUT {출력변수} {타입},
	-- INOUT {입출력변수} {타입}
)
AS $$
DECLARE
	-- 변수 선언
BEGIN
	/*
		쿼리 작성 (트랜잭션 사용 가능)
	*/
END;
$$ LANGUAGE plpgsql;

-- 삭제
DROP PROCEDURE {프로시저};

/*
	PostgreSQL 13.0 이상
*/
-- 삭제
DROP PROCEDURE IF EXISTS {프로시저};