투케이2K

52. (MSSQL/SQL) [프로시저/PROCEDURE] [INPUT [부서] / OUT [컬럼]] 특정 부서 데이터 조회 본문

MsSqlDB

52. (MSSQL/SQL) [프로시저/PROCEDURE] [INPUT [부서] / OUT [컬럼]] 특정 부서 데이터 조회

투케이2K 2022. 5. 1. 11:27

[개발 환경 설정]

개발 툴 : SSMS

개발 언어 : MSSQL

 

[소스 코드]

/***************************************************************/


CREATE PROCEDURE PRO_SEL_DEPT -- [생성]
--ALTER PROCEDURE PRO_SEL_DEPT -- [수정]
(
	@IN_DEPT NVARCHAR(100) -- [인풋 : 부서]
)

/***************************************************************
설명 - 사용자 디바이스 고유값 일괄 초기화 수행
---------------------------------------------------------------
프로시저 생성 조회 : sp_helptext 'dbo.PRO_SEL_DEPT'
---------------------------------------------------------------
프로시저 호출 : EXEC PRO_DEL_UUID;

-- [변수 선언]
DECLARE @IN_DEPT NVARCHAR(100);


-- [인풋 값 대입 실시]
SET @IN_DEPT = '고구려';
 

-- [프로시저 호출]
EXEC PRO_SEL_DEPT @IN_DEPT;

---------------------------------------------------------------              
프로시저 삭제 : DROP PROCEDURE PRO_SEL_DEPT
***************************************************************/  


AS


/**************** [프로시저 전역 변수 선언 실시] ***************/
DECLARE @V_STEP NVARCHAR(100); -- [디버깅 단계]
DECLARE @V_DATE NVARCHAR(100); -- [프로시저 수행 시간]

DECLARE @OUT_MSG NVARCHAR(500); -- [리턴 메시지]


/************** [프로시저 동작 쿼리문 작성 실시] ***************/
BEGIN TRY

	/*=========================================================*/


	-- [로직 : 스텝 저장]
	SET @V_STEP = '1';


	-- [프로시저 수행 날짜 및 시간 확인]
	SET @V_DATE = CONVERT(CHAR(19), getDate(), 20);


	/*=========================================================*/


	-- [로직 : 스텝 저장]
	SET @V_STEP = '2';


	-- [사전 인풋 데이터 체크 수행 실시]
	IF LEN(TRIM(@IN_DEPT)) = 0 OR TRIM(@IN_DEPT) = ''
	BEGIN    
		-- [메시지 출력]
		SET @OUT_MSG = 'N: 인풋 데이터 값을 확인해 주세요. [STEP = ' + @V_STEP + '] ' + '[' + @V_DATE + ']';
		PRINT '========================================='
		PRINT @OUT_MSG
		PRINT '========================================='


		-- [리턴 컬럼 반환 실시]
		SELECT @OUT_MSG;


		-- [리턴 종료]
		RETURN;
	END


	/*=========================================================*/


	-- [인풋 데이터 조건으로 컬럼 데이터 조회 실시]
	SELECT * 
	    FROM TEST_USER
	WHERE T_DEPT = @IN_DEPT;


	-- [메시지 출력]
	SET @OUT_MSG = 'Y: SUCCESS ' + '[' + @V_DATE + ']';
	PRINT '========================================='
	PRINT @OUT_MSG
	PRINT '========================================='


	-- [리턴 처리]
	RETURN;


	/*=========================================================*/

END TRY


/************** [프로시저 예외 발생 처리 실시] ***************/
BEGIN CATCH
	-- [메시지 출력]
	SET @OUT_MSG = 'N: EXCEPTION [STEP = ' + @V_STEP + '] ' + '[' + @V_DATE + ']';
	PRINT '========================================='
	PRINT @OUT_MSG
	PRINT '========================================='


	-- [리턴 메시지 컬럼 반환]
	--/*
	SELECT @OUT_MSG
	;
	-- */


	-- [리턴 처리]
	RETURN;
END CATCH


/**************** [프로시저 종료 처리 부분] ******************/
GO
/**************************************************************/
 

[결과 출력]

 

 

반응형
Comments