SQL - error convertir varchar a int

 
Vista:

error convertir varchar a int

Publicado por xavi (3 intervenciones) el 29/06/2012 16:21:08
Alguien conoce este error y como se soluciona?

Error de conversión l convertir el valor varchar 'cod087' al tipo de de datos int

El caso es que el campo ese si que es varchar pero no se porque quiere pasarlo a int porque lo que intento hacer es un

UPDATE articulos
SET stock = '12'
WHERE (referencia = 'co001' or referencia = 'co002') (y asi con 900 ors)
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
sin imagen de perfil
Val: 806
Bronce
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

error convertir varchar a int

Publicado por leonardo_josue (1173 intervenciones) el 29/06/2012 19:32:54
Hola xavi:

No nos dices con que BD estás trabajando, aunque por el tipo de error puedo suponer que se trata de SQL Server. De entrada, no hay nada malo en tu consulta, aunque estoy seguro que en realidad esto no es lo que estás tratando de ejecutar, sino un ejemplo de lo que crees que se esta tratando de ejecutar. Este error es típico cuando no utilizas correctamente las comillas para comparar un campo. Si por ejemplo tienes una tabla con una columna tipo VARCHAR así:

1
2
3
4
5
campo_varchar
---------------------
1
2
3


Tu puedes sin problemas hacer una consulta así:

1
SELECT * FROM tabla WHERE campo_varchar = 1


OJO, hay que recordar que el campo es de tipo varchar, por lo tanto la condición WHERE debería colocarse entre comillas, sin embargo, SQL Server intenta hacer de manera automática una conversión a INT, en este caso no tendrías problemas y podrías hacer la consulta. sin embargo, si tuvieras un dato no numérico en la tabla:

1
2
3
4
5
6
campo_varchar
---------------------
1
2
3
co001


Aquí si marcaría el error que estás mencionando en tu post, pues co001 no se puede convertir a entero, por lo que sería necesario que pusieras la consulta así:

1
SELECT * FROM tabla WHERE campo_varchar = '1'


Algo por el estilo creo que es lo que está pasando. Revisa perfectamente que cuando hagas mención de un campo tipo VARCHAR pongas siempre las comillas.

Saludos
Leo.
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