원시 데이터를 구문 분석 할 저장 프로 시저를 만들었습니다. 아래 코드는 저장 프로 시저의 일부입니다. 나는 그것을 테스트하고 오류 '데이터 유형 varchar를 부동으로 변환하는 중 오류가 발생했습니다.'. KM2의 원시 데이터가 다른 경우와 다른 경우 모두 변경됩니다.구문 분석시 데이터 형식 varchar를 float로 변환하는 중 오류가 발생했습니다.
누군가가 나를 올바르게 도와 줄 수 있습니까? 모든 도움 사람을 미리 감사드립니다. 내가으로 실행에 보관
SELECT [Account] = LEFT('351856040520298,241111;1G,141007034741,A,1430.4280N,12100.0551E,0.0,330,0.8,20000000;2G,141007034741,11,22.8,12.87,04.09,273342044.3',CHARINDEX(',','351856040520298,241111;1G,141007034741,A,1430.4280N,12100.0551E,0.0,330,0.8,20000000;2G,141007034741,11,22.8,12.87,04.09,273342044.3') - 1),
[TrxDateTime] = cast(stuff(stuff(stuff((SUBSTRING('351856040520298,241111;1G,141007034741,A,1430.4280N,12100.0551E,0.0,330,0.8,20000000;2G,141007034741,11,22.8,12.87,04.09,273342044.3', 27, 12)), 7,0,' '), 10,0,':'), 13,0,':') as datetime),
[PhilTime] = GETDATE(),
[GPSStatus] = CASE WHEN(SUBSTRING('351856040520298,241111;1G,141007034741,A,1430.4280N,12100.0551E,0.0,330,0.8,20000000;2G,141007034741,11,22.8,12.87,04.09,273342044.3', 40, 1) = 'A')
THEN 'OK'
ELSE 'Message Not Valid' END,
[Lat] = cast(SUBSTRING('351856040520298,241111;1G,141007034741,A,1430.4280N,12100.0551E,0.0,330,0.8,20000000;2G,141007034741,11,22.8,12.87,04.09,273342044.3', 42, 9) as float)/100,
[Long] = cast(SUBSTRING('351856040520298,241111;1G,141007034741,A,1430.4280N,12100.0551E,0.0,330,0.8,20000000;2G,141007034741,11,22.8,12.87,04.09,273342044.3', 53, 10) as float)/100,
[Speed2] = cast(SUBSTRING('351856040520298,241111;1G,141007034741,A,1430.4280N,12100.0551E,0.0,330,0.8,20000000;2G,141007034741,11,22.8,12.87,04.09,273342044.3', 65, 1) as float)*1.852/1000,
[ENGINE] = CASE WHEN (SUBSTRING('351856040520298,241111;1G,141007034741,A,1430.4280N,12100.0551E,0.0,330,0.8,20000000;2G,141007034741,11,22.8,12.87,04.09,273342044.3', 77, 1) = '2')
THEN 'ON'
ELSE 'OFF' END,
[KM2] = CASE WHEN(right('351856040520389,241111;1G,141209203228,A,1437.3980N,12103.6893E,0.0,44,0.8,01004000', 11) like '%,%')
THEN 'NULL'
--ELSE 'BDADADADAD' END,
ELSE round(cast(right('351856040520389,241111;1G,141209203228,A,1437.3980N,12103.6893E,0.0,44,0.8,01004000', 11)as float)/3600, 0, 1) END,
[PlateNo] = NULL,
[ProcStatus] = '0';
오류는 여기에 이중 문제가 발생하는
Msg 8114, Level 16, State 5, Line 1
Error converting data type varchar to float.
변경 'THEN'에 NULL''는'THEN NULL' ... –
또한, 난 정말 당신이 이제까지이 같은 데이터를 저장하지 않았 으면 란에 –