2013-02-26 3 views
2

산술 오버플로 오류를 표시하는이 쿼리에 문제가 있습니다.산술 오버플로 오류 삽입시 숫자에서 데이터 유형 숫자로 변환

INSERT INTO seed_health_testing_form (seedlotno, modeoftesting, datetested, 
    datecollected, placecollected, sampleno, germination1, germination2, 
    germination3, germination4, germination5, germination6, germination7, 
    germination8, germination9, germination10, remarks) 
VALUES ('A00075', 'GTest', '2/14/2013', 
    '2/19/2013', 'Laguna', 0, 50.00, 50.00, 
    50.00, 50.00, 0.00, 0.00, 0.00, 
    0.00, 0.00, 0.00, '') 

테이블 디자인

[id]    [int]  IDENTITY(1,1) PRIMARY KEY NOT NULL 
[seedlotno]   [varchar](50) NULL 
[modeoftesting]  [varchar](100) NULL 
[datetested]  [datetime]  NULL 
[datecollected]  [datetime]  NULL 
[placecollected] [varchar](100) NULL 
[sampleno]   [int]   NULL 
[germination1]  [decimal](3, 2) NULL 
[germination2]  [decimal](3, 2) NULL 
[germination3]  [decimal](3, 2) NULL 
[germination4]  [decimal](3, 2) NULL 
[germination5]  [decimal](3, 2) NULL 
[germination6]  [decimal](3, 2) NULL 
[germination7]  [decimal](3, 2) NULL 
[germination8]  [decimal](3, 2) NULL 
[germination9]  [decimal](3, 2) NULL 
[germination10]  [decimal](3, 2) NULL 
[remarks]   [varchar](1000) NULL 

나는 오류가 어디에 있는지 추적 선으로 삽입 쿼리 라인을 깨는 시도했지만 항상 내 문제가 어디 있는지 아직도 내가 찾을 수없는 라인 (1)을 가리 킵니다.

답변

6

모든 [decimal](3, 2) 데이터 유형이 문제입니다.

(3,2)은 소수점 이하 자릿수가 2 자리 숫자로 예약되어 있으며 숫자의 합계가 3 자리의 정밀도 일 수 있음을 알려줍니다.

따라서 오버플로가 발생하는 50과 같은 값을 저장할 수있는 자리는 1 자리수입니다.

자세한 내용은 decmial datatype documentation을 참조하십시오.

+0

나는 (3,2)가 3 개의 정수와 2 개의 십진수라고 생각했다. 그래서 1.00은 저에게 오류를주지 않습니다. 감사 – pvzkch

관련 문제