Foros del Web » Programación para mayores de 30 ;) » .NET »

Error ORA-01722: invalid number

Estas en el tema de Error ORA-01722: invalid number en el foro de .NET en Foros del Web. Hola, Tengo este error en la aplicación web que estoy haciendo y llevo toda la mañana averiguando de donde puede venir y sigo sin poder ...
  #1 (permalink)  
Antiguo 24/05/2013, 05:47
 
Fecha de Ingreso: abril-2012
Mensajes: 449
Antigüedad: 12 años, 8 meses
Puntos: 7
Exclamación Error ORA-01722: invalid number

Hola,

Tengo este error en la aplicación web que estoy haciendo y llevo toda la mañana averiguando de donde puede venir y sigo sin poder arreglarlo. Os explico donde me lanza este error.

En mi aplicación tengo un textbox en el que se puede introducir un importe; en este texbox introduzco 4,14 y guardo el valor utilizado una clase ya que tengo que pasar los datos de un aspx a otro. esa clase se llama DatosG y tiene lo siguiente:
CLASE DatosG:
Código vb:
Ver original
  1. Public Class DatosG
  2.     Public Property importetotal() As Decimal
  3.         Get
  4.             Return m_importetotal
  5.         End Get
  6.         Set(ByVal value As Decimal)
  7.             m_importetotal = value
  8.         End Set
  9.     End Property
  10.     Private m_importetotal As Decimal
  11. End Class

Así es como guardo el importe que introduzco en la variable de la clase
Código vb.net:
Ver original
  1. Dim datoG As New DatosG()
  2. datoG.importetotal = CDec(Me.TextTotGastosCantiVRLG.Text)
  3. Session.Add("datosG", datoG)

Desde otro aspx necesito recoger el valor ese para luego hace un insert y para ello hago lo siguiente:
Código vb.net:
Ver original
  1. Dim importeTotal As Decimal
  2. Dim datoG As DatosG = TryCast(Session("datosG"), DatosG)
  3. importeTotal = datoG.importetotal

De esta forma obtengo el valor de lo que he introducido en la variable "importeTotal". Una vez que obtengo este valor, hago el siguiente insert:

Código vb.net:
Ver original
  1. sql = "insert into sapsr3.zgastos_gen (zimkm2) "
  2. sql = sql + "values(' " & importekm2 & " ')"
  3.  
  4.         Dim comm As New OracleCommand(sql, conn)
  5.  
  6.         Try
  7.  
  8.             Using conn
  9.                 conn.Open()
  10.  
  11.                 mytrans = conn.BeginTransaction()
  12.                 Try
  13.                     With comm
  14.                         .Transaction = mytrans
  15.                         .ExecuteNonQuery()
  16.                         .Dispose()
  17.                     End With
  18.                     mytrans.Commit()
  19.                 Catch ex As OracleException
  20.                     mytrans.Rollback()
  21.                     MsgBox("Error en BD" & Chr(13) & Chr(13) & ex.Message)
  22.                 End Try
  23.             End Using
  24.         Catch ex As Exception
  25.  
  26.             MsgBox("Error en BD" & Chr(13) & Chr(13) & ex.Message)
  27.         Finally
  28.             conn.Close()
  29.             conn.Dispose()
  30.         End Try

Y cuando estoy en ".ExecuteNonQuery()" me lanza error "ORA-01722: invalid number".

No se porque puede ser pero me esta sacando de quicio ya.

alguien me puede ayudar?
__________________
Gracias por todo;

Un saludo
  #2 (permalink)  
Antiguo 24/05/2013, 10:45
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Error ORA-01722: invalid number

Código vb:
Ver original
  1. sql = "insert into sapsr3.zgastos_gen (zimkm2) "
  2. sql = sql + "values(' " & importekm2 & " ')"
Estás metiendo un número como cadena de texto. Oracle suele validar esa condición y devolver ese error.
Embebelo como numero, no como cadena, y vuelve a probar.
Código vb:
Ver original
  1. sql = "insert into sapsr3.zgastos_gen (zimkm2) "
  2. sql += "values(" & importekm2 & ")"
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 19/06/2013, 01:34
 
Fecha de Ingreso: abril-2012
Mensajes: 449
Antigüedad: 12 años, 8 meses
Puntos: 7
Respuesta: Error ORA-01722: invalid number

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Código vb:
Ver original
  1. sql = "insert into sapsr3.zgastos_gen (zimkm2) "
  2. sql = sql + "values(' " & importekm2 & " ')"
Estás metiendo un número como cadena de texto. Oracle suele validar esa condición y devolver ese error.
Embebelo como numero, no como cadena, y vuelve a probar.
Código vb:
Ver original
  1. sql = "insert into sapsr3.zgastos_gen (zimkm2) "
  2. sql += "values(" & importekm2 & ")"
Hola, he quitado lo que me dijiste de las ' ' pero ahora me da el siguiente error: ORA-00936: missing expresion

__________________
Gracias por todo;

Un saludo
  #4 (permalink)  
Antiguo 19/06/2013, 13:11
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Error ORA-01722: invalid number

Ajá...
¿Y estás totalmente seguro de que esa variable contiene algo?
Porque a Oracle no le está llegando nada...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: bd, invalid, number, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:01.