ALTER PROCEDURE [dbo].[P_BULK]
(
@itblParam TYPE_UP_DATA_VIB_BULK Readonly,
@p_error_code VARCHAR(100) = '' OUTPUT, -- 사용자 에러코드 리턴
@p_row_count INT = 0 OUTPUT, -- 실행/리턴하는 레코드행수
@p_error_note NVARCHAR(100) = '' OUTPUT, -- 사용자 지정 문자열
@p_return_str NVARCHAR(100) = '' OUTPUT, -- 사용자 지정 반환값
@p_error_str NVARCHAR(1000) = '' OUTPUT, -- 오류메세지
@ErrorState VARCHAR(500) = '' OUTPUT, -- 오류번호/심각도/오류상태번호오류발생루틴내의 줄번호
@ErrorProcedure NVARCHAR(200) = '' OUTPUT -- 오류발생 프로시저/트리거
)
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
--select * from UP_DATA_VIB_VURK;
BEGIN
BEGIN TRY
-----------------------------------------------------------------------------------------------------------------------
-- 첫번째 리턴 레코드셋 처리 --첫 번째 Excel Insert
INSERT INTO UP_DATA_VIB_VURK
(C1, C2, C3, C4, C5, C6)
SELECT
C1, C2, C3, C4, C5, C6
FROM @itblParam AS nr;
SELECT @p_row_count = @@ROWCOUNT
-- 에러가 없을 경우에 정상적인 처리 진행
IF @p_row_count > 0
SET @p_error_code = 'MSG0002' -- 정상적으로 등록되었습니다.
ELSE
SET @p_error_code = 'MSG0029' -- 등록된 레코드가 없습니다.
-----------------------------------------------------------------------------------------------------------------------
END TRY
BEGIN CATCH
SELECT @p_error_code = CASE SUBSTRING('N',1,1)
WHEN 'Q' THEN 'ERR0006' -- 조회시 에러가 발생하였습니다.
WHEN 'N' THEN 'ERR0008' -- 등록시 오류가 발생하였습니다.
WHEN 'U' THEN 'ERR0009' -- 수정시 오류가 발생하였습니다.
WHEN 'D' THEN 'ERR0010' -- 삭제시 오류가 발생하였습니다.
ELSE 'ERR0000'
END
SELECT @ErrorState = CONVERT(VARCHAR(100), ERROR_NUMBER()) + '|' + CONVERT(VARCHAR(100), ERROR_SEVERITY()) + '|' + CONVERT(VARCHAR(100), ERROR_STATE()) + '|' + CONVERT(VARCHAR(100), ERROR_LINE()),
@ErrorProcedure = 'PRC=' + ERROR_PROCEDURE(), @p_error_str = ERROR_MESSAGE();
END CATCH;
END