[sql] 프로시저 호출 시 반환값 받는 방법

1. OUT 매개 변수 사용하기

프로시저의 매개 변수 중 OUT 매개 변수를 사용하여 호출 후 결과 값을 받을 수 있습니다. 아래는 MySQL에서의 예시입니다.

CREATE PROCEDURE get_employee_count(out employee_count INT)
BEGIN
  SELECT COUNT(*) INTO employee_count FROM employees;
END;

프로시저를 호출하고 결과 값을 받으려면 다음과 같이 해야 합니다.

CALL get_employee_count(@count);
SELECT @count as employee_count;

이렇게 하면 @count 변수에 직원 수 결과 값이 저장되고, @count 변수를 다시 SELECT 문으로 조회할 수 있습니다.

2. SELECT 문 사용하기

프로시저에서 반환하는 값을 SELECT 문으로 받을 수도 있습니다. 아래는 PostgreSQL에서의 예시입니다.

CREATE OR REPLACE FUNCTION get_employee_count()
  RETURNS INT AS
$$
DECLARE
  employee_count INT;
BEGIN
  SELECT COUNT(*) INTO employee_count FROM employees;
  RETURN employee_count;
END;
$$
LANGUAGE plpgsql;

프로시저를 호출하고 결과 값을 받으려면 다음과 같이 해야 합니다.

SELECT get_employee_count();

이렇게 하면 프로시저의 반환 값이 SELECT 문으로 바로 전달되어 조회됩니다.

3. 결과 집합 사용하기

프로시저가 반환하는 결과가 여러 개인 경우, 결과 집합을 사용하여 값을 받을 수 있습니다. 아래는 SQL Server에서의 예시입니다.

CREATE PROCEDURE get_employees
AS
BEGIN
  SELECT * FROM employees;
END;

프로시저를 호출하고 결과 값을 받으려면 다음과 같이 해야 합니다.

EXEC get_employees;

이렇게 하면 프로시저가 반환하는 결과 집합이 바로 반환되어 조회됩니다.

위의 방법들은 각각의 데이터베이스 시스템에서 사용되는 방법입니다. 데이터베이스의 종류와 사용하는 언어에 따라 다른 방식을 사용해야 할 수 있으므로, 해당 데이터베이스 시스템의 공식 문서나 레퍼런스를 참고하는 것이 좋습니다.