반응형
INPUT : 입력 매개변수
- 변수 선언시 디폴트 값
- 입력한 값을 프로시저 내에서 사용 할 수 있게 해주는 변수
입력 매개변수 구문
- 기존의 프로시저 생성 구문과 같음
- IN 키워드를 생략해도 기본 값은 IN이기 때문에 상관 없음
CREATE PROCEDURE -- 프로시저명
-- @매개변수 데이터타입 IN
AS
BEGIN
-- SQL문
END
입력 매개변수 사용 예시
- 이름이 사라인 애완동물의 나이 확인하기
- 이름 : 입력 매개변수 (inVar)
- 나이 : 쿼리 실행 결과 (select ~)
-- 기본 테이블 정보 확인
select * from MyPet
-- 프로시저 생성
CREATE PROC inVarTest
-- 입력 매개변수 선언, 사용자로부터 값을 입력 받는 변수, IN 생략 가능
@inVar nvarchar(10) IN
AS
BEGIN
-- 입력 매개변수를 활용하여 이름 확인 후, 나이 조회
select age from MyPet where name=@inVar
END
-- 프로시저 실행
-- 매개변수는 프로시저명 뒤에 나열
EXEC inVarTest "sara";
- 기본 테이블 정보 확인
- 프로시저 실행 결과
반응형
OUTPUT : 출력 매개변수
- 변수 선언시 뒤에 OUTPUT 키워드 명시 (Default=INPUT)
- 프로시저 내에서 실행된 결과값을 되돌려 받을 수 있게 해주는 변수
출력 매개변수 구문
- 기존의 프로시저 생성 구문과 같음
- 단, OUT 키워드를 생략하면 입력 매개변수가 되므로 꼭 입력
CREATE PROCEDURE -- 프로시저명
-- @매개변수 데이터타입 OUT
AS
BEGIN
-- SQL문
END
출력 매개변수 사용 예시
- 이름이 사라인 애완동물의 나이 확인하기
- 이름 : 입력 매개변수 (inVar)
- 나이 : 출력 매개변수 (outVar)
- 출력 매개변수 사용시 확인사항
- 프로시저 내에서 출력 매개변수 뒤에 OUT 키워드 사용
- 프로시저 실행시 출력 매개변수의 값 반환
- 값을 반환 받을 변수 필요
- 출력 매개변수 뒤에 OUTPUT 키워드 사용
- OUTPUT 키워드가 없으면 NULL 값 반환
- 참고 : 해당 쿼리는 이해를 도울 예제를 목적으로 작성하였습니다.
-- 기본 테이블 정보 확인
select * from MyPet
-- 프로시저 생성
CREATE PROC outVarTest
-- 입력 매개변수 선언, 사용자로부터 값을 입력 받는 변수, IN 생략 가능
@inVar nvarchar(10) IN
-- 출력 매개변수 선언, 실행 결과를 매개변수에 저장하여 반환 할 수 있음
-- !!! OUT 키워드 필수 !!!
@outVar int OUT
AS
BEGIN
-- 입력 매개변수를 활용하여 이름 확인
-- 출력 매개변수에 나이를 저장 후 조회
select @outVar=age from MyPet where name=@inVar
END
-- 프로시저 실행
-- 매개변수는 프로시저명 뒤에 나열
-- 출력 매개변수의 경우, 값을 반환 받을 변수 필요
-- 출력 매개변수는 OUTPUT 키워드를 사용하여 값 반환
DECLARE @outValue int;
EXEC outVarTest "sara" @outValue OUTPUT;
select @outValue;
- 프로시저 실행 결과
- 첫번째 결과
- 프로시저 실행시 프로시저 안에 있는 select문
- 두번째 결과
- 출력 매개변수의 값을 반환받은 변수(outValue)의 값 확인(select @outValue)
- 첫번째 결과
반응형