Estoy trabajando en C# .net 2 (Visual Studio 2005 SP1) intentando llenando un conjunto de datos con los resultados de una selección * de la tabla de una base de datos Oracle10g. El .NET Framework, IDE y la base de datos no pueden cambiarse en este sitio del cliente.ODP.net Oracle Decimal Número de problema de precisión al llenar un conjunto de datos. Excepción: la operación aritmética resultó en un desbordamiento
Estoy conectando con el proveedor de ODP.net la versión DLL es 2.102.2.20
Cuando ejecuto el comando de llenado obtengo una excepción:
operación aritmética dio lugar a una desbordamiento
También si intento ver la columna ofensiva en el diseñador de Visual Studio (Mostrar datos de tabla) obtengo para ev ery fila para esta columna en la tabla. El código funciona perfectamente si mi consulta selecciona otras columnas con enteros, por ejemplo, omitiendo esta columna.
La columna en cuestión se ve bien cuando veo que en la base de datos de sapo, los datos se parece a:
919,742866695572
necesito el precisión ya que es necesario para una simulación de Monte Carlo.
Si en lugar de usar un adaptador de datos para llenar la tabla de datos utilizo un lector de datos y llamo dataReader.getValue (columnIndex) obtengo el mismo error pero si llamo a dataReader.GetOracleDecimal (columnIndex) entonces obtengo el resultado que estoy buscando para, no hay error
Preferiría usar el adaptador de datos y llenar un conjunto de datos (tenga en cuenta que estos son conjuntos de datos no tipados, ya que no pude obtener datasets fuertemente autodefinidos para trabajar desde un oráculo db). No quiero usar datareader y recorrer los resultados (seleccionar los valores de columna) ya que estoy tratando de escribir esto como un método genérico para trabajar en muchos escenarios, independientemente del número de columnas, el índice de columnas decimales que requeriría una especificación específica. recibe llamadas por tipo de datos.
¿Alguien puede ayudar? ¿Puedo usar las nuevas versiones de los DLL de ODP.net para conectarme a la base de datos Oracle10g anterior? Me pregunto si esto ayudará.
Gracias
Cambiar la versión de ODP.net a 11g (Oracle.DataAccess.dll 2.111.6.20) no ayudó Aún obtengo la operación aritmética como resultado una excepción de desbordamiento. Una solución aunque no ideal es que al hacer esto: SELECT TO_CHAR (offendingColumn) DE Tabla Pero ahora mis tipos DataColumn son diferentes, escribo estos datos a Excel, así que estoy seguro si esto afectará el formato de celda también. – m3ntat
También significa que necesito saber acerca de cada columna en la Tabla. No puedo simplemente hacer una cobija. Seleccionar * De la Tabla – m3ntat