El problema es que los varchar admiten un máximo de 8.000 caracteres...
He leído en la documentación oficial de Microsoft que en caso de querer pasar más de 8.000 caracteres a un exec, debe hacerse por "pedazos", es decir:
declare @PEDAZO1 as varchar (8000)
declare @PEDAZO2 as varchar (8000)
...
exec (@PEDAZO1 + @PEDAZO2)
El problema ahora es cómo puedo pasar el código de un campo de tipo text a un número indeterminado de variables varchar (8000).
Sé que puedo usar la función READTEXT:
declare @ptr as varbinary(16)
declare @len as int
select @ptr = textptr (CAMPOTEXTO), @len = datalength (CAMPOTEXTO)
from TABLA
readtext TABLA.CAMPOTEXTO @ptr 0 @len
Esta función me devuelve el texto completo del campo CAMPOTEXTO, mi duda es cómo puedo ahora pasarlo por pedazos a variables........