[sql] 프로시저 호출 시 입력, 출력, 입력/출력 파라미터 사용 방법

프로시저는 SQL 데이터베이스에서 데이터를 처리하기 위해 사용되는 저장 프로시저입니다. 프로시저는 입력 매개 변수, 출력 매개 변수, 또는 입력/출력 매개 변수를 가질 수 있습니다. 이들 각 매개 변수는 프로시저에 필요한 데이터를 제공하거나 결과를 반환하는 데 사용됩니다.

입력 매개 변수 사용

입력 매개 변수는 프로시저에 데이터를 전달하기 위해 사용됩니다. 프로시저 내에서 이러한 매개 변수는 읽기 전용으로 사용됩니다. 입력 매개 변수는 다음과 같이 선언됩니다:

CREATE PROCEDURE procedure_name
    @input_parameter_name data_type
AS
BEGIN
    -- 프로시저 내용
END

예를 들어, 이름과 이메일을 입력받아 사용자를 데이터베이스에 추가하는 프로시저를 만들어 보겠습니다:

CREATE PROCEDURE AddUser
    @name VARCHAR(50),
    @email VARCHAR(50)
AS
BEGIN
    INSERT INTO Users (Name, Email)
    VALUES (@name, @email)
END

출력 매개 변수 사용

출력 매개 변수는 프로시저 내에서 결과를 반환하는 데 사용됩니다. 출력 매개 변수는 다음과 같이 선언됩니다:

CREATE PROCEDURE procedure_name
    @output_parameter_name data_type OUTPUT
AS
BEGIN
    -- 프로시저 내용
END

예를 들어, 사용자의 이메일을 기반으로 이름을 검색하여 반환하는 프로시저를 만들어 보겠습니다:

CREATE PROCEDURE GetUserName
    @email VARCHAR(50),
    @name VARCHAR(50) OUTPUT
AS
BEGIN
    SELECT @name = Name
    FROM Users
    WHERE Email = @email
END

입력/출력 매개 변수 사용

입력/출력 매개 변수는 데이터를 전달하고 결과를 받는 데 모두 사용됩니다. 입력/출력 매개 변수는 다음과 같이 선언됩니다:

CREATE PROCEDURE procedure_name
    @input_output_parameter_name data_type INOUT
AS
BEGIN
    -- 프로시저 내용
END

예를 들어, 사용자의 이름과 새로운 이메일을 입력받아 기존 이메일을 업데이트하는 프로시저를 만들어 보겠습니다:

CREATE PROCEDURE UpdateUserEmail
    @name VARCHAR(50),
    @new_email VARCHAR(50),
    @old_email VARCHAR(50) OUTPUT
AS
BEGIN
    SELECT @old_email = Email
    FROM Users
    WHERE Name = @name
    
    UPDATE Users
    SET Email = @new_email
    WHERE Name = @name
END

프로시저 호출하기

프로시저를 호출하려면 EXECUTE 문을 사용합니다. 입력, 출력, 또는 입력/출력 매개 변수는 호출 시에 전달되어야 합니다.

프로시저 호출 후 입력, 출력 또는 입력/출력 매개 변수를 사용할 수 있습니다.

결론

프로시저는 데이터베이스에서 데이터를 처리할 때 매우 유용한 기능입니다. 프로시저 호출 시 입력, 출력 또는 입력/출력 매개 변수를 사용하여 데이터를 전달하거나 결과를 반환할 수 있습니다. 이러한 매개 변수는 프로시저를 사용하여 데이터베이스 작업을 보다 효율적이고 유연하게 처리하는 데 도움을 줍니다.

참고 자료