ERROR !!!!! Limitacion tamaño varchar(8000)

27/10/2005 - 15:50 por Jesus Suarez | Informe spam
Hola a todos,
tengo un conjuento de variables de tipo varchar con diferentes tamaños,
la concatenacion de todas ellas es mas grande que 8000.
Lo que quiero hacer en un procedimiento almacenado es guardar la
concatenacion de todas estas variables en un campo de una tabla que es de
tipo TEXT, como puedo hacer, sin que me trunque el texto.

Un saludo

Jesús Suarez López
Responsable Técnico de Galiciaempleo.net
Galiciaempleo.net
C/ Curros Enriquez 43 bajo
mail: soporte@galiciaempleo.net
Tlf 981 217 855

Preguntas similare

Leer las respuestas

#1 Maxi
27/10/2005 - 16:28 | Informe spam
hola, no te entiendo, el tipop text no te truncara ningun resultado


Salu2
Maxi [MVP SQL SERVER]


"Jesus Suarez" escribió en el mensaje
news:
Hola a todos,
tengo un conjuento de variables de tipo varchar con diferentes tamaños,
la concatenacion de todas ellas es mas grande que 8000.
Lo que quiero hacer en un procedimiento almacenado es guardar la
concatenacion de todas estas variables en un campo de una tabla que es de
tipo TEXT, como puedo hacer, sin que me trunque el texto.

Un saludo

Jesús Suarez López
Responsable Técnico de Galiciaempleo.net
Galiciaempleo.net
C/ Curros Enriquez 43 bajo
mail:
Tlf 981 217 855


Respuesta Responder a este mensaje
#2 Jesus Suarez
27/10/2005 - 16:38 | Informe spam
el insert que hago es el siguiente donde, cuerpo1 es de tipo TEXT.

insert into tblCorreos
(idtipo,Remitente,emailRem,Asunto,Cuerpo1,idestado,Destinatario,emaildest,FechaRecep,weborigen,cabecera,pie,idcontrol)
values (10,@remitente,@emailrem,@asunto,@cabecera + '<br>' + @s_cuerpo +
@s_cuerpo1 + @s_cuerpo3 + '</table></td></tr>' + '<br><br>' +
@pie,1,'',@codcentro, getdate(),@webaux,@cabecera,@pie,0)


"Maxi" escribió en el mensaje
news:%
hola, no te entiendo, el tipop text no te truncara ningun resultado


Salu2
Maxi [MVP SQL SERVER]


"Jesus Suarez" escribió en el mensaje
news:
Hola a todos,
tengo un conjuento de variables de tipo varchar con diferentes
tamaños, la concatenacion de todas ellas es mas grande que 8000.
Lo que quiero hacer en un procedimiento almacenado es guardar la
concatenacion de todas estas variables en un campo de una tabla que es de
tipo TEXT, como puedo hacer, sin que me trunque el texto.

Un saludo

Jesús Suarez López
Responsable Técnico de Galiciaempleo.net
Galiciaempleo.net
C/ Curros Enriquez 43 bajo
mail:
Tlf 981 217 855






Respuesta Responder a este mensaje
#3 Oscar
27/10/2005 - 16:58 | Informe spam
Hola, Jesus,

1) posiblemente al hacer @VariableTipoVarchar1 + @VariableTipoVarchar1 +
@VariableTipoVarchar1 ... el sql Server te este haciendo un conversion a
varchar por lo que te esta truncando al tamaña máximo del varchar.

2) Tienes un tabla con un posible tamaño de fila > que el tamaño máximo que
permite SQL-SERVER, planteate dividir la tabla en varias .

3) Es es un Off toppic , pero desde mi punto de vista es de mala educación
(ademas de span) repeteir varias veces la misma pregunta en el mismo foro o
grupo de noticias .

Saludos.


www.metasincro.es
"Jesus Suarez" wrote in message
news:
el insert que hago es el siguiente donde, cuerpo1 es de tipo TEXT.

insert into tblCorreos
(idtipo,Remitente,emailRem,Asunto,Cuerpo1,idestado,Destinatario,emaildest,FechaRecep,weborigen,cabecera,pie,idcontrol)
values (10,@remitente,@emailrem,@asunto,@cabecera + '<br>' + @s_cuerpo +
@s_cuerpo1 + @s_cuerpo3 + '</table></td></tr>' + '<br><br>' +
@pie,1,'',@codcentro, getdate(),@webaux,@cabecera,@pie,0)


"Maxi" escribió en el mensaje
news:%
hola, no te entiendo, el tipop text no te truncara ningun resultado


Salu2
Maxi [MVP SQL SERVER]


"Jesus Suarez" escribió en el mensaje
news:
Hola a todos,
tengo un conjuento de variables de tipo varchar con diferentes
tamaños, la concatenacion de todas ellas es mas grande que 8000.
Lo que quiero hacer en un procedimiento almacenado es guardar la
concatenacion de todas estas variables en un campo de una tabla que es
de tipo TEXT, como puedo hacer, sin que me trunque el texto.

Un saludo

Jesús Suarez López
Responsable Técnico de Galiciaempleo.net
Galiciaempleo.net
C/ Curros Enriquez 43 bajo
mail:
Tlf 981 217 855










Respuesta Responder a este mensaje
#4 Rubén Vigón
27/10/2005 - 17:01 | Informe spam
Hola Jesús,

En lugar de concatenar tus variables «varchar» y asignar el valor concatenado en el INSERT INTO deberías usar las funciones para escribir en campos «text», «ntext» e «image» (WRITETEXT, UPDATETEXT y TEXTPTR)

Un saludo!

Rubén Vigón
Microsoft MVP Visual Basic
http://vigon.mvps.org
Respuesta Responder a este mensaje
#5 Alejandro Mesa
27/10/2005 - 17:14 | Informe spam
Jesus Suarez,

Tenemos dos opciones, la una es usar sql dinamico, cosa que no recomiendo si
es que tenemos otra opcion o forma de hacerlo pues existen muchos cons
(contras) al usar sql dinamico y por lo cual adjunto un muy buen articulo
sobre este tema. La segunda opcion seria hacer un insert usando la primera
variable y luego usar "updatetext" tantas veces como variables desees
insertar al final del texto. Aca te paso un script con dos procedimientos
almacenados, el uno usa sql dinamico y el otro usa "updatetext" para que
tengas una idea de como hacerlo.

create table t1(
c1 int not null identity unique,
c2 text
)
go

create procedure p1
@v1 varchar(8000),
@v2 varchar(8000)
as
set nocount on

exec ('insert into t1(c2) values(''' + @v1 + @v2 + ''')')

return @@error
go

create procedure p2
@v1 varchar(8000),
@v2 varchar(8000)
as
set nocount on

declare @i int
declare @j int
declare @ptrval binary(16)

insert into t1(c2) values(@v1)

set @i = scope_identity()

select
@ptrval = textptr(c2), @j = datalength(c2)
from
t1
where
c1 = @i

updatetext t1.c2 @ptrval @j 0 @v2

return @@error
go

declare @s1 varchar(8000)
declare @s2 varchar(8000)

set @s1 = replicate('a', 8000)
set @s2 = replicate('b', 8000)

exec p1 @s1, @s2
exec p2 @s1, @s2
go

select c1, datalength(c2)
from t1
go

drop procedure p1, p2
go

drop table t1
go

Las virtudes y maldades del SQL dinámico
http://www.hayes.ch/sql/sql_dinamico.html


AMB

"Jesus Suarez" wrote:

Hola a todos,
tengo un conjuento de variables de tipo varchar con diferentes tamaños,
la concatenacion de todas ellas es mas grande que 8000.
Lo que quiero hacer en un procedimiento almacenado es guardar la
concatenacion de todas estas variables en un campo de una tabla que es de
tipo TEXT, como puedo hacer, sin que me trunque el texto.

Un saludo

Jesús Suarez López
Responsable Técnico de Galiciaempleo.net
Galiciaempleo.net
C/ Curros Enriquez 43 bajo
mail:
Tlf 981 217 855



Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida