2011-06-13 2 views
1

데이터베이스의 열의 데이터 형식 오버플로를 확인하는 방법을 묻는 싶습니다.SQL - 데이터 형식의 오버플로를 확인하는 방법

다음은 SQL에 입력해야하는 텍스트입니다.

응답에 대한 감사 "오버 플로우 값이 컬럼의 데이터 유형의 사이를 벗어나면 무슨 일이 생긴". 이 같은

+0

어떤 데이터베이스 및 오버플로가 발생할 수있는 작업 –

+0

int의 경우? 날짜 시간? 텍스트의 길이? – gbn

+0

저장 프로 시저에서 try catch 문 사용 – neo

답변

2

뭔가 데이터베이스 응용 프로그램에서 ... SQL Server에 대한

DECLARE @userInput NVarChar(100) = '129387918279387987123123'; 
DECLARE @value Int; 

BEGIN TRY 
    SELECT @value = CONVERT(Int, @userInput); 
END TRY 
BEGIN CATCH 
    PRINT 'Overflow happend when the value is out of interval of column''s data type'; 
END CATCH; 
1

을 일하는 것이 정말 오버 플로우에서 (코드에서 복구하는) 자동으로 복구 할 수있는 좋은 방법이 아니다. 트랜잭션을 롤백해야합니다.

따라서 서버에서 발생하는 오버플로 오류를 트랩해야하고 다른 모듈이 롤백 할 수 있도록 해당 오류를 다시 롤백하거나 올리십시오. 나는 그 일을하는 데 정말로 요점을 보지 못한다. 그러나 나는 뭔가를 놓칠지도 모른다.

내가 누락 된 항목이 있습니까?

+0

이것은 우리 스크립트의 해결책이지만 실제로 이해할 수는 없습니다. 나는 이것에 초보자이다. – joseph

+0

from data_stage_tmp.gc_currency_quotes 여기서 abs (spot_ask)> = 형 변환 (99999.9999999 10 진수 (13, 7)); – joseph

+0

체크 오버 플로우 필드가있는 다른 테이블의 일부 테이블에 피드를 제공하고 그 테이블을 피드하기 전에 행을 삭제해야합니다. – joseph

관련 문제