SQL - he conversion with value varchar ´6000000001" overflowed and int value,

   
Vista:

he conversion with value varchar ´6000000001" overflowed and int value,

Publicado por Jose Luis (3 intervenciones) el 17/01/2018 17:32:10
Hello, I would like to know if someone can assist me here I have a view from a table that was working until we have added a new value that probably is longer than the value vbeln is set in the table as a char(10)

The View is

1
2
3
4
5
6
7
SELECT TOP (100) PERCENT vkorg, vtweg, vbeln, spart, posnr, bstdk, auart, bezei, zterm, zterm_desc, repr, nrepr, waerk, pltyp, solin, nsoli, resppag, nresppag, destmerc,
	ndestmerc, cod_soli, stras, ort01, smtp_addr, telf1, grcli_soli, descr_gr_cli, kvgr3, nif_cif, matnr, maktx, ptyv, vtext, precio_uni, kwmeng, kzwi1, dto, netwr, abgru,
	zzmayorista
FROM dbo.flash
WHERE (abgru = '') AND (vbeln NOT IN (70003158, 70003157, 10014318)) AND (auart IN
	(SELECT auart
	FROM dbo.filtro_auart))

When reaching the new value (160000000001' on vbeln and running the view I get the error the conversion with value varchar ´6000000001' overflowed and int value,

Any ideas how to fix this? The table shows the values correctly but not this view
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
Imágen de perfil de Isaias

he conversion with value varchar ´6000000001" overflowed and int value,

Publicado por Isaias (1177 intervenciones) el 17/01/2018 23:00:03
Hello

This blog is only for spanish languaje, but

¿What type is vbeln?, You tells us that it is varchar (10), but if this were true, it would truncate the information when assigning it in the table or, it would not allow its entry

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
-- Example using a variable of type string, there is an automatic truncation
-- no get error message
declare @myvar char(10)
set @myvar = '160000000001'
select len(@myvar)
select 'result:', @myvar
select cast(@myvar as int)
-- But if we try to enter a higher value to a table, then we get an error
DECLARE @MyTableVar table(
    MyValue char(10))
INSERT INTO  @MyTableVar VALUES('160000000001')
 
Msg 8152, Level 16, State 14, Line 14
String or binary data would be truncated.
The statement has been terminated.


PD: I'm sorry but the English is not my mother languaje
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

he conversion with value varchar ´6000000001" overflowed and int value,

Publicado por Jose Luis (3 intervenciones) el 18/01/2018 09:11:09
Adjunto el fichero para que veas la estructura y el error que me da
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
Imágen de perfil de Isaias

he conversion with value varchar ´6000000001" overflowed and int value,

Publicado por Isaias (1177 intervenciones) el 18/01/2018 18:00:41
Veamos, "dijo un ciego"

Mi estimado amigo, espero hayas leido sobre conversion de datos IMPLICITO, si en tu vista colocas

1
WHERE     (abgru = '') AND (vbeln NOT IN (70003158, 70003157, 10014318))

SQL, asume que vbeIn es un INT, ya que la instruccion correcta deberia ser:

1
WHERE     (abgru = '') AND (vbeln NOT IN ('70003158', '70003157', '10014318'))

De esta forma, estamos diciendole a SQL que el tipo de dato de vbIn es un CHAR(20) y no haga la conversion impliciata a INT

¿Que motor de base de datos esta ocupando?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar

he conversion with value varchar ´6000000001" overflowed and int value,

Publicado por Jose Luis (3 intervenciones) el 21/01/2018 20:20:25
Gracias! Curiosamente nunca nos dio error hasta que aparecieron estos numeros de albaranes, pero esto lo resolvio. Muchas gracias por tu ayuda

JOse Luis
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
Imágen de perfil de Isaias

he conversion with value varchar ´6000000001" overflowed and int value,

Publicado por Isaias (1177 intervenciones) el 23/01/2018 00:13:25
De nada Jose Luis, son las famosas conversiones implicitas
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
Revisar política de publicidad