estoy frente a un problema que se produce cuando se trata de obtener los resultados de esta simple consulta SQL en .NET (C#):valor de la fracción Infinito en la columna de consulta SQL en C#
select 1/3 as col from dual
OracleDataReader.GetValue(i)
se emite una excepción:
Arithmetic operation resulted in an overflow. at Oracle.DataAccess.Types.DecimalConv.GetDecimal(IntPtr numCtx) at Oracle.DataAccess.Client.OracleDataReader.GetDecimal(Int32 i) at Oracle.DataAccess.Client.OracleDataReader.GetValue(Int32 i)
he descubierto que este error cuando occures número de precisión alto 28 dígitos, por lo que esto conduce a error:
select round(1/3,29) as col from dual
pero esto no
select round(1/3,28) as col from dual
será intentar tratar valor de columna en C# como Doble recibe error "fundido no válido"
¿Alguien sabe alguna manera para evitar esta situación, excepto de redondeo ubicua de columnas de números?
¿Se puede decir por qué usted quiere hacer 1/3 de consulta a la base !! –
Fue solo un ejemplo. Puede obtener una fracción infinita como resultado de alguna fórmula, comenzando desde la media aritmética hasta cálculos más complejos –
¿Qué sucede si hace esto: 'seleccionar 1.0/3.0 desde dual'? –