ms-sql 관련 질문이있습니다. 0 1 1,084

by 순서기 [PL/SQL] [2015.03.27 14:45:07]


CREATE PROCEDURE PROC_CAL
(
  @operand_a int
  , @operand_b int
)
AS

  -- 내부 변수 선언
  DECLARE @sum int
  DECLARE @minus int
  DECLARE @mul int
  DECLARE @division int
  DECLARE @bool INT = ISNUMERIC(@operand_a)

    -- 중복 데이터 검사
    IF EXISTS(SELECT * FROM calculator WHERE operand_a = @operand_a and operand_b = @operand_b)
  
  BEGIN
    EXEC PROC_CAL_SELECT @operand_a, @operand_b
    RETURN
  END
   
  ELSE
  
    BEGIN
      BEGIN TRY
        BEGIN TRAN
          -- 각 각의 계산 프로시저 수행 후 내부 변수에 할당
          EXEC @sum = PROC_CAL_SUM @operand_a, @operand_b
          EXEC @minus = PROC_CAL_MINUS @operand_a, @operand_b
          EXEC @mul = PROC_CAL_MUL @operand_a, @operand_b
          EXEC @division = PROC_CAL_DIVISION @operand_a, @operand_b
          
          -- 삽입 후 조회
          
          EXEC PROC_CAL_INSERT @operand_a, @operand_b, @sum, @minus, @mul, @division
          EXEC PROC_CAL_SELECT @operand_a, @operand_b
        COMMIT TRAN
      END TRY
  
      BEGIN CATCH
        ROLLBACK TRAN
        SELECT ERROR_MESSAGE();
      END CATCH
      
    END

여기서 입력값이 숫자가아닌 문자가 들어오면 예외처리하는 방법을 모르겠습니다.

by 개발뉴비 [2015.03.30 10:50:29]

프로시저 호출 시 문자가 입력되면 프로시저를 못타고 바로 오류가 떨어져서....

프로시저 내부에서는 예외처리가 안될겁니다.

프로시저 호출하는 소스 부분에 예외처리 작업을 해 주셔야 할거에요.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입