T-SQL Asignacion de una variable al contenido de un fichero

29/12/2004 - 13:05 por Oscar | Informe spam
Mi pregunta es:

En el T-SQL de SQL Server 2000 y utilizando el analizador de
consultas ¿Cómo se puede asignar a una variable el contenido
de un fichero?
· La siguiente instrucción muestra el contenido del fichero
pru.txt: master..xp_cmdshell 'type "C:\Documents and
Settings\alumno\Escritorio\pru.txt"', ... pero ¿cómo se puede
asignar ese contenido a una variable?

Me contestaron:

create table #tmp (output nvarchar(255))
insert #tmp
exec xp_cmdshell 'type "C:\Documents and Settings\alumno\Escritorio\pru.txt"'
declare @var nvarchar(255)
select top 1 @var = output from #tmp --Aquí filtra como debas
select @var
drop table #tmp

Yo he probado eso y se parece MUCHO a lo que pregunto, ya que consigue
asignar "la primera línea" del fichero pru.txt a la variable @var.
Lo que no consigo es asignar "el contenido de un fichero" completo. Lo que
estoy intentando es asignar el contenido de un fichero que incluya un
documento XML.

¿Como es posible esto?

Un saludo y muchas gracias


oscarvianes@hotmail.com
 

Leer las respuestas

#1 Carlos Sacristán
29/12/2004 - 13:36 | Informe spam
Existe un procedimiento almacenado no documentado, sp_readerrorlog, que
en principio sólo sirve para leer archivos de log, pero que en realidad te
permite leer archivos de cualquier tipo. Hay un artículo de Narayana Vyas
(un MVP de SQL Server) que lo documenta mínimamente. Si tienes privilegios
suficientes puedes empezar a hacer pruebas con él y nos cuentas.

Ten en cuenta que al no estar documentado, nada garantiza que en
versiones futuras siga funcionando...


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"Oscar" escribió en el mensaje
news:
Mi pregunta es:

En el T-SQL de SQL Server 2000 y utilizando el analizador de
consultas ¿Cómo se puede asignar a una variable el contenido
de un fichero?
· La siguiente instrucción muestra el contenido del fichero
pru.txt: master..xp_cmdshell 'type "C:\Documents and
Settings\alumno\Escritorio\pru.txt"', ... pero ¿cómo se puede
asignar ese contenido a una variable?

Me contestaron:

create table #tmp (output nvarchar(255))
insert #tmp
exec xp_cmdshell 'type "C:\Documents and


Settings\alumno\Escritorio\pru.txt"'
declare @var nvarchar(255)
select top 1 @var = output from #tmp --Aquí filtra como debas
select @var
drop table #tmp

Yo he probado eso y se parece MUCHO a lo que pregunto, ya que consigue
asignar "la primera línea" del fichero pru.txt a la variable @var.
Lo que no consigo es asignar "el contenido de un fichero" completo. Lo que
estoy intentando es asignar el contenido de un fichero que incluya un
documento XML.

¿Como es posible esto?

Un saludo y muchas gracias






Preguntas similares