문서의 이전 판입니다!
/*
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 ;
/*
MSSQL 2000 이상
*/
-- 생성
CREATE PROCEDURE {프로시저}
@{입력변수} {타입},
@{출력변수/입출력변수} {타입} OUTPUT,
@{입력변수} {타입} READONLY -- Table-Valued Parameter
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 {프로시저};
/*
Oracle 8i 이상/Tibero 5 이상
*/
-- 생성/수정
CREATE OR REPLACE PROCEDURE {프로시저} (
{입력변수} IN {타입}, -- IN 키워드 생략 가능
{출력변수} OUT {타입},
{입출력변수} IN OUT {타입}
)
IS | AS
{변수} {타입};
BEGIN
/*
쿼리 작성 (트랜잭션 사용 가능)
*/
END;
/
-- 삭제
DROP PROCEDURE {프로시저};
/*
Oracle 23c 이상
*/
-- 삭제
DROP PROCEDURE IF EXISTS {프로시저};
/*
PostgreSQL 11.0 이상
*/
-- 생성/수정
CREATE OR REPLACE PROCEDURE {프로시저}(
IN {입력변수} {타입}, -- IN 키워드 생략 가능
OUT {출력변수} {타입},
INOUT {입출력변수} {타입}
)
AS $$
DECLARE
{변수} {타입};
BEGIN
/*
쿼리 작성 (트랜잭션 사용 가능)
*/
END;
$$ LANGUAGE plpgsql;
-- 삭제
DROP PROCEDURE {프로시저};
-- 삭제
DROP PROCEDURE IF EXISTS {프로시저};