2017-09-11 19 views
1

두 개의 열 latitudelongitude이 있습니다. 고정 너비 파일에서 가져올 때 숫자로 설정해야하지만 해당 프로세스를 다시 수행 할 시간이 없어야합니다. SQL Server Express를 사용하고 가져 오기 마법사를 사용해야합니다. 92 개의 기둥이 있습니다.varchar에서 숫자로 변환

어쨌든 다음 코드를 사용하고 varchar(9)에서 numeric (11,6)으로 변경하려고하면 오류가 발생합니다 (아래 참조). 이름과 데이터 유형을 변경할 수있는 위치로 설정을 수정했습니다. 객체 탐색기에서 디자인 기능을 사용하면 비슷한 오류가 발생합니다. 이 딜레마를 피하는 다른 방법은 없나요?

코드 :

alter table dbo.tablename 
    alter column latitude numeric(11,6); 

오류 :

Msg 8114, Level 16, State 5, Line 1
Error converting data type varchar to numeric.

그냥 다음 코드 발견 :

alter table tablename 
alter column latitude float 

왜이 작품,하지만 이전 했습니까?

+1

태그 당신의 RDBMS : 잘 모르겠어요 SQL Server Express가 isnumeric()을 지원합니다, 그래서 이것은 하나의 가능성이다 :

select latitude from tablename where isnumeric(latitude) = 0; 

그렇지 않으면, 당신은 like와이에 근접 할 수 있습니다. 안에있는 모든 데이터가 숫자인지 확실합니까? 'SQL 서버라면 실행 해보십시오 :'SELECT MIN (ISNUMERIC (latitude)) From Your Table'. 1 또는 0을 얻습니까? – sagi

+0

값 1을 반환했습니다. –

답변

1

값을 찾아야합니다. 각각 다른 문법을 가지고,

where latitude not like '%[^0-9.]%' and 
     latitude not like '%.%.%'