Oracle - error "ORA-01722: número no válido"

 
Vista:

error "ORA-01722: número no válido"

Publicado por vlg (7 intervenciones) el 29/03/2006 09:29:48
Hola estoy intentado pasar de vb.net una serie de paramentros a unos campos con decimales y me da el error Message "ORA-01722: número no válido" String
el codigo que utilizo es el siguiente

pSQL = "update iplinpeorig set iva=:IVA , RECARGO=:Recargo " _
& " where coddiv=:CodDiv and codped=:CodPed and seqlinea=:SeqLinea "

pComm.Connection = argCon

pComm = New OleDbCommand(pSQL, argCon, argTrasn)

pComm.Parameters.Add(":CodDiv", argRow.CodDiv)
pComm.Parameters.Add(":CodPed", argRow.CodPed)
pComm.Parameters.Add(":SeqLinea", argRow.SeqLinea)
pComm.Parameters.Add(":IVA", OleDbType.Numeric).Value = 90
pComm.Parameters.Add(":Recargo", OleDbType.Numeric).Value = 10

¿sabe alguien como solucionar este problema?

Muchas gracias ....
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:error

Publicado por uliseswarior (41 intervenciones) el 29/03/2006 17:48:22
Hola!!
Verifica primero que el valor que estas enviando no lleve ninguna comoa(,), espacios o caracter como retornos de linea ,etc tambine verifica que el valor que estas enviando no sea mayor a la lonfigud del campo o variable que recibe

Buen Dia.............
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:error

Publicado por jose cardoza (3 intervenciones) el 29/03/2006 17:54:17
Hola...

Posiblemente en la linea:

& " where coddiv=:CodDiv and codped=:CodPed and seqlinea=:SeqLinea "

el tipo de dato de las columnas de la tabla iplinpeorig es diferente a el tipo de dato de los parametros por lo que no puede hacer el match.

Ejemplo:

coddiv es numerico
:CodDiv es alfanumerico

resulta en el error "ORA-01722: número no válido"
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:error

Publicado por veronica (2 intervenciones) el 13/09/2006 20:15:46
Hola. Yo tuve el mismo problema con los decimales cuando hice una aplicación en VB 6.0 con DB oracle 10.i
Te comento que lo que hice fue algo como:

En un modulo tengo la siguiente función, que no es mas que el reemplazo de los separadores de miles

Function TransDouble1(LvNumber As Double) As String
TransDouble1 = Replace(LvNumber, ",", ".")
End Function

Y luego a cada RS posible de comas, punto le colocan el TransDouble1, como por ejemplo

" & TransDouble1 (RS!MONTOT) & "

Espero que te de una idea suerte.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:error

Publicado por veronica (2 intervenciones) el 13/09/2006 20:21:11
Hola. Yo tuve el mismo problema con los decimales cuando hice una aplicación en VB 6.0 con DB oracle 10.i
Te comento que lo que hice fue algo como:

En un modulo tengo la siguiente función, que no es mas que el reemplazo de los separadores de miles

Function TransDouble1(LvNumber As Double) As String
TransDouble1 = Replace(LvNumber, ",", ".")
End Function

Y luego a cada RS posible de comas, punto le colocan el TransDouble1, como por ejemplo

" & TransDouble1 (RS!MONTOT) & "

Espero que te de una idea suerte.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:error

Publicado por Javier (1 intervención) el 01/12/2006 14:22:29
Dos posibles alternativas:
1)_Fijate el separador decimal punto por coma
2)_Que no intentes asignar un valor numero a un campo string o viceversa.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

error "ORA-01722: número no válido"

Publicado por Juan Carlos Hernandez (1 intervención) el 13/05/2008 21:10:35
Hola como vas?, ¿ya tienes solución a este problema?. La verdad es que me pasa lo mismo y quiera saber si lo habías solucionado.

Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

error "ORA-01722: número no válido"

Publicado por emerson (1 intervención) el 13/03/2013 04:27:34
e tenido el mismo problema y e encontrado.. varias a causas a eso, que a vista simple no parecerian el origen del problema y varias solciones en fiiiin

SOLUCIONES
-parametriza cada variable como VARCHAR2 , no importa asi sea doble o int, es con los que e provado.

-al momento de crear los parametros, aslo en el mismo orden k utilizaras en tu consulta
ejmplo 'select id_ventas from ventas Where gastos=:gastos and producto=:producto ....'

crea parametros en el mismo orden, primero parametro para 'gastos' luego parametro para 'producto' suceviamente creeme es nescesario hacer esto,

-ultima solucion, si aun tienes el problema cambia prueva ambas bibliotecas System.Data.OracleClient o Oracle.data.... Pruevenlo.. les aseguro .. que solucionaran su problema.. yo rompi la cabeza con este tema... jajaja


Ejemplo


OracleCommand command;
int retorno = 0;
string sql = "insert into orden(id_orden,dni,id_menu,id_mesa,fecha) values(:id_orden,:dni,:id_menu,:id_mesa,(SELECT NEW_TIME(TO_DATE(:fecha,'DD-MM-YY HH24:MI'), 'PST', 'PST')FROM DUAL))";
command = new OracleCommand(sql, conexion);
//command.Transaction = transaccion;
command.Parameters.Add("id_orden", OracleDbType.Varchar2, orden.Id_orden, ParameterDirection.Input);
command.Parameters.Add("dni", OracleDbType.Varchar2, orden.Dni, ParameterDirection.Input);
command.Parameters.Add("id_menu", OracleDbType.Varchar2, orden.Id_menu, ParameterDirection.Input);
command.Parameters.Add("id_mesa", OracleDbType.Varchar2, orden.Id_mesa, ParameterDirection.Input);
command.Parameters.Add("fecha", OracleDbType.Varchar2, orden.Fecha, ParameterDirection.Input);
retorno = command.ExecuteNonQuery();
return retorno;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:error

Publicado por Gabo (1 intervención) el 23/02/2010 21:33:28
Imagino que IVA y Recargo son numericos, es posible que coddiv, codped o seqlinea sean varchar ?
de ser asi tienes que rodearlos por comillas simples..
& " where coddiv=':CodDiv' and codped=':CodPed' and seqlinea=':SeqLinea' "
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

error "ORA-01722: número no válido"

Publicado por GabrielAlex (1 intervención) el 10/10/2016 20:06:44
Una posible causa es que estes trabajando con el NLS_LANG incorrecto. Para México es el MEXICAN SPANISH_MEXICO.WE8ISO8859P1

Entra al Regedit y busca NLS_LANG y actualiza el valor a MEXICAN SPANISH_MEXICO.WE8ISO8859P1
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar