2011-07-26 18 views
9

Tengo un procedimiento almacenado de SQL que acepta un parámetro de tipo VARCHAR (MAX). Por lo que yo sé y de acuerdo con todo lo que leí sobre, el tamaño máximo para este tipo de cadenas es de 2 GB: MSDNCadena o datos binarios se truncarán Error de SQL

Por alguna razón, cuando pasa una cadena mayor que 8 KB consigo:

cadena o los datos binarios se truncarán.

¿Por qué aparece este mensaje de error y cómo puedo resolverlo?

+1

sugieren que publique el procedimiento almacenado y el código de llamada son –

+0

¿puedes publicar el resto del proceso? Puede no estar relacionado con ese parámetro. – SteveCav

+0

de hecho el documento no está claro; parece que el límite es 8k, excepto si escribe "max" ... lo que sé usando Oracle Dbms, sin embargo, es que varchar está limitado a 4k; Puedo estar equivocado, no lo he comprobado con cuidado y prefiero clob/blob para datos arbitraramente grandes – ShinTakezou

Respuesta

8

De acuerdo con BoL (el enlace que ha especificado) existe una diferencia de interpretación. La cantidad máxima que puede usar en una consulta (la n parte) es 8000. Para fines de almacenamiento, el varchar (max) puede manejar 2 GB en el disco.

Es solo la interpretación de los tipos de datos con fines de consulta y almacenamiento. Entonces, en resumen, solo puede usar 8000 caracteres en una consulta ....

8

Para evitar este problema, tiene que emitir su cadena primero en varchar(max):

column = cast(other_column as varchar(max)) 

esta manera cualquier cadena más larga que max (8000 o 4000, dependiendo de la versión) se trunca a la longitud máxima.

1

Usted está pasando una cadena más grande que la columna en la base de datos, ¿verdad? Intenta aumentar el tamaño de tu columna.

1

Usted está pasando una cadena más grande que columna en la base de datos.

Al igual que su tabla de base es la siguiente:

EXECUTIVE varchar(15) 

Pero la cadena de inserción como (en vb.net):

cmd.Parameters.Add("@EXECUTIVE", Data.SqlDbType.VarChar, 150).Value = CmbExecutive.Text.ToString() 
Cuestiones relacionadas