2010-08-13 6 views
0

SQL Server 2000에 연결된 .net 응용 프로그램을 실행할 때 "잘못된 부동 소수점 연산"오류가 발생합니다. 오류 원인을 찾으려고했는데 http://fugato.net/2005/02/08/sql-server-nastiness 열에 가짜 데이터가있을 수 있다는 링크를 발견했습니다.SQL Server 2000의 잘못된 부동 소수점 연산

이전 데이터베이스에 연결할 때 한 달 이전 데이터의 백업이 있습니다. 정상적으로 작동합니다.

표의 가짜 데이터를 어떻게 필터링합니까?

+0

좋아 하나 개의 인스턴스 만 거기에 테이블 몇 NVARCHAR 열, 커플 플로트 열, 내가 필터링하고 할 때 오류가 발생되는 것을 observerd NTEXT 열 있다 열이 있지만 열 또는 행을 찾을 수 couldnt? – EvenPrime

답변

3

한 가지 방법은 커서를 사용하여 행 ID별로 문제가있는 작업을 수행하는 것일 수 있습니다. 오류가 발생하면 인쇄 된 ID를 참조하여 잘못된 데이터가 포함 된 행을 확인할 수 있습니다.

아마도 더 좋은 방법이있을 수 있습니다. 그러나 이것은 마음에 떠오른 것입니다.

+0

"더 나은"방법이있을 수 있지만 이것은 간단하고 구현하기 쉽습니다. 이것은 제 책에서 큰 장점입니다. – Barry

+1

프로덕션에 들어가기 전에 다시 커서를 제거하는 것을 잊지 마십시오. –

+0

그래서 문제가 발생했습니다. 플로팅 값 "1E + 21"이 문제를 일으키는 이유는 SQL이 E 형식을 허용하는 이유입니다. 0으로 업데이트했습니다. 이제는 모든 것이 괜찮습니다. 감사합니다. – EvenPrime

0

문제의 원인이되는 테이블을 알고 계십니까? 이 테이블에 대해 SELECT * FROM...을 실행하고 결과를 얻을 수 있습니까? 그렇다면 각각의 FLOAT/REAL/NUMERIC/DECIMAL 열로 표와 순서를 선택하고 끝을보고 'oddities'가 있는지 확인하십시오.

1

당신은 당신의 문제를 좁힐 필요

  • 이 때 정확히 이런 일이 무엇입니까? 문제를 일으키는 SQL 쿼리가 실행되고 있습니까 ??

  • 일단 검색어가 있으시면 - 검색어가 어떤지보십시오. 그 테이블들을 검사해라. VARCHAR 필드를 숫자 값으로 변환하고, 어떤 값들이 모두 숫자가 아닌가?

  • 또는 SqlDataReader를 사용하여 데이터를 읽었습니까? SQL Server에 포함 된 데이터가 예상과 다를 수도 있다는 사실에주의하지 않고 있습니까?

1
select col 
from tbl 
group by col 
having count(col) = 1 

아마 나쁜 값