0
오라클에서 mongodb로 데이터를 변환하는 애플리케이션을 구축했습니다. 일부 오류가 발생할 때까지 응용 프로그램이 정상적으로 작동합니다. 오류는 Specified cast is not valid
입니다.oracle에서 mongodb로 십진수 저장
오라클에 데이터를 검사하려고 시도했는데 일부 레코드의 값이 1.4211E-14
인 필드를 발견했습니다.
저는 값을 받기 위해 OracleDataReader
을 사용합니다. 이 코드를 사용하여 진수로 변환 시도했다 :
OracleDataReader reader = command.ExecuteReader();
...
decimal value = 0;
if (decimal.TryParse(reader.GetString(i), NumberStyles.Float, CultureInfo.InvariantCulture, out value))
document.Set(reader.GetName(i), Convert.ToDouble(value));
else {
var v = reader.GetDecimal(i)/(decimal)1000000;
document.Set(reader.GetName(i), (float) v);
}
또는이 :
document.Set(reader.GetName(i), Convert.ToString(reader.GetDecimal(i)));
예외가 여전히 발생했습니다. mongodb에 숫자 데이터로 1.4211E-14
을 저장하려면 어떻게해야합니까?
mongo가 10 진수 값을 인식하지 못하기 때문에 값을 직접 mongodb에 저장할 수 없습니다. 사전에
감사합니다.
왜 십진수 값을 문자열로 유지합니까? 그냥 10 진수로 저장하고'GetDecimal' 메서드를 사용하면됩니다. –
내 업데이트를 확인하십시오 – nvl
이 업데이트는 잘못된 유형의 사용과 관련이 없습니다. 그냥 * 문자열로 변환하지 마십시오. 'GetDecimal()'으로 값을 읽어 들인 그대로 전달하거나 명시 적으로 BsonDouble로 변환하십시오. –