Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Exec del contenido de un Text (SQL Server)

Estas en el tema de Exec del contenido de un Text (SQL Server) en el foro de Bases de Datos General en Foros del Web. Entorno: SQL Server Tengo una tabla, llamémosla "SQL", con un campo de tipo text , llamémoslo "Query". En este campo almaceno consultas de tipo select ...
  #1 (permalink)  
Antiguo 11/05/2005, 12:30
 
Fecha de Ingreso: julio-2001
Mensajes: 80
Antigüedad: 22 años, 9 meses
Puntos: 1
Exec del contenido de un Text (SQL Server)

Entorno: SQL Server

Tengo una tabla, llamémosla "SQL", con un campo de tipo text, llamémoslo "Query". En este campo almaceno consultas de tipo select relativamente grandes (más de 10.000 caracteres).

Pues bien, ¿cómo puedo hacer un exec del contenido de uno de los registros de esta tabla?.

Muchas gracias y saludos
__________________
Carlos Capote Pérez-Andreu
  #2 (permalink)  
Antiguo 11/05/2005, 13:21
Avatar de Jorge_Mota  
Fecha de Ingreso: diciembre-2002
Ubicación: Chapinlandia :-D
Mensajes: 725
Antigüedad: 21 años, 4 meses
Puntos: 11
declare @sql as text
select @sql =query from tabla_query where id_query=1
exec sp_sqlexec @cSql

prueba a ver si te funciona, es que nunca uso el campo tipo texto.


Saludos
__________________
Jorge Mota
Blog
Gubiz estafa
  #3 (permalink)  
Antiguo 11/05/2005, 15:18
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Como nota adicional al comentario de Jorge:

Procura reemplazar sp_sqlexec por sp_executesql, pues el primero ya está "depreciado" y es (o dejará) de ser soportado
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #4 (permalink)  
Antiguo 12/05/2005, 00:09
 
Fecha de Ingreso: julio-2001
Mensajes: 80
Antigüedad: 22 años, 9 meses
Puntos: 1
Exclamación

Mi problema es precisamente que no se puede hacer uso de variables locales de tipo text...

Si intentas ejecutar el código que me propones recibirás este error:

Server: Msg 2739, Level 16, State 1, Line 1
Los tipos de datos text, ntext e image no son válidos para las variables locales.

¿¡¡¡¡Alguien me puede ayudar!!!!?

__________________
Carlos Capote Pérez-Andreu
  #5 (permalink)  
Antiguo 12/05/2005, 19:10
Avatar de axel_mdq  
Fecha de Ingreso: mayo-2004
Ubicación: Mar del Plata
Mensajes: 157
Antigüedad: 19 años, 11 meses
Puntos: 0
Tengo una idea... pero no sé si va a resultar.
Podrías utilizas un varchar(10000) como tipo de variable y despues al campo text lo convertis a varchar(10000). No se, podrias ver que sucede.
__________________
Saludos,

Alejandro. :adios:
  #6 (permalink)  
Antiguo 13/05/2005, 06:43
 
Fecha de Ingreso: julio-2001
Mensajes: 80
Antigüedad: 22 años, 9 meses
Puntos: 1
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........

__________________
Carlos Capote Pérez-Andreu
  #7 (permalink)  
Antiguo 13/05/2005, 19:17
Avatar de axel_mdq  
Fecha de Ingreso: mayo-2004
Ubicación: Mar del Plata
Mensajes: 157
Antigüedad: 19 años, 11 meses
Puntos: 0
Tenes la funcion Substring que te devuelve un string, o varchar, de la medida que quieras. Probá con eso.
__________________
Saludos,

Alejandro. :adios:
  #8 (permalink)  
Antiguo 18/05/2005, 04:24
 
Fecha de Ingreso: julio-2001
Mensajes: 80
Antigüedad: 22 años, 9 meses
Puntos: 1
Lo sé, pero la función SubString no admite como parámetro un valor te tipo text o ntext...

Sigo sin saber cómo solucionarlo...

¿Alguien sabe de un tutorial en el que expliquen cómo manejar en SQL Server campos de tipo text y/o ntext?...

PD: Los manuales de Microsoft ya los he consultado y conozco el uso de la función read text, pero no me vale...

Gracias
__________________
Carlos Capote Pérez-Andreu
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:39.