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

Preguntas similare

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






Respuesta Responder a este mensaje
#2 qwalgrande
29/12/2004 - 15:49 | Informe spam
Hola.

Puedes rellenar la variable recorriendo la tabla:

create table #tmp (output nvarchar(255))
insert #tmp
exec xp_cmdshell 'type "C:\STATS.LOG"'
declare @var nvarchar(255), @xml nvarchar(4000)
select @var = '', @xml = ''
declare cur cursor fast_forward for
select * from #tmp
open cur
fetch next from cur into @var
while @@fetch_status = 0
begin
select @xml = @xml + isnull(@var,'') + char(13) + char(10)
fetch next from cur into @var
end
deallocate cur
select @xml
drop table #tmp

Si no te sirve, nos comentas.

qwalgrande

"Oscar" wrote:

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






email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida