Referencia a Archivo en SP

26/10/2005 - 07:03 por Aventurero | Informe spam
Buenas amigos del Foro.
Estoy realizando pruebas para cargar datos de un archivo que siempre tiene
distinto nombre, dependiendo del Codigo del punto de venta y con el
propósito de hacer un Store Procedure.
Cuando ejecuto las siguientes instrucciones desde el Analizador de Consultas
funciona bien.
BULK INSERT TMedioPunto
FROM 'C:\Temp\medios\PUNTO8302.TXT'
WITH
(
FIELDTERMINATOR = '|'
)

Las siguientes instrucciones no funcionan:
declare @archivo varchar(30)
set @archivo = 'C:\Temp\medios\PUNTO8302.TXT'

BULK INSERT TMedioPunto
FROM @archivo
WITH
(
FIELDTERMINATOR = '|'
)

Servidor: mensaje 170, nivel 15, estado 1, línea 5
Línea 5: sintaxis incorrecta cerca de '@archivo'.

Qué puedo hacer para hacer referencia a @archivo del medio para cargar los
datos correspondientes.

Gracias.

Aventurero

Preguntas similare

Leer las respuestas

#1 Alejandro Mesa
26/10/2005 - 15:10 | Informe spam
Aventurero,

Quizas usando "dynamic sql".

declare @sql nvarchar(4000)

set @sql = N'
BULK INSERT TMedioPunto
FROM ''' + @archivo + N'''
WITH
(
FIELDTERMINATOR = '|'
)'

exec sp_execute_sql @sql
go


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


AMB

"Aventurero" wrote:

Buenas amigos del Foro.
Estoy realizando pruebas para cargar datos de un archivo que siempre tiene
distinto nombre, dependiendo del Codigo del punto de venta y con el
propósito de hacer un Store Procedure.
Cuando ejecuto las siguientes instrucciones desde el Analizador de Consultas
funciona bien.
BULK INSERT TMedioPunto
FROM 'C:\Temp\medios\PUNTO8302.TXT'
WITH
(
FIELDTERMINATOR = '|'
)

Las siguientes instrucciones no funcionan:
declare @archivo varchar(30)
set @archivo = 'C:\Temp\medios\PUNTO8302.TXT'

BULK INSERT TMedioPunto
FROM @archivo
WITH
(
FIELDTERMINATOR = '|'
)

Servidor: mensaje 170, nivel 15, estado 1, línea 5
Línea 5: sintaxis incorrecta cerca de '@archivo'.

Qué puedo hacer para hacer referencia a @archivo del medio para cargar los
datos correspondientes.

Gracias.

Aventurero



Respuesta Responder a este mensaje
#2 Aventurero
26/10/2005 - 15:51 | Informe spam
Gracias Alejandro.
Hice la siguiente prueba, y genera un error

declare @archivo varchar(50)
set @archivo = 'C:\Temp\medios\PUNTO3021.TXT'

declare @sql nvarchar(4000)

set @sql = N'
BULK INSERT TMedioPunto
FROM ''' + @archivo + N'''
WITH
(
FIELDTERMINATOR = '|'
)'

exec sp_execute_sql @sql

Servidor: mensaje 403, nivel 16, estado 1, línea 6
Operador no válido para el tipo de datos. Operador boolean OR, tipo
nvarchar.

¿Cometí algún error?

Atentamente,



Aventurero
Respuesta Responder a este mensaje
#3 Alejandro Mesa
26/10/2005 - 16:34 | Informe spam
Se nos olvido duplicar las comillas simples que encierran el fieldterminator.

FIELDTERMINATOR = '|'



FIELDTERMINATOR = ''|''


declare @archivo varchar(50)
set @archivo = 'C:\Temp\medios\PUNTO3021.TXT'

declare @sql nvarchar(4000)

set @sql = N'
BULK INSERT TMedioPunto
FROM ''' + @archivo + N'''
WITH
(
FIELDTERMINATOR = ''|''
)'

exec sp_execute_sql @sql
go


AMB

"Aventurero" wrote:

Gracias Alejandro.
Hice la siguiente prueba, y genera un error

declare @archivo varchar(50)
set @archivo = 'C:\Temp\medios\PUNTO3021.TXT'

declare @sql nvarchar(4000)

set @sql = N'
BULK INSERT TMedioPunto
FROM ''' + @archivo + N'''
WITH
(
FIELDTERMINATOR = '|'
)'

exec sp_execute_sql @sql

Servidor: mensaje 403, nivel 16, estado 1, línea 6
Operador no válido para el tipo de datos. Operador boolean OR, tipo
nvarchar.

¿Cometí algún error?

Atentamente,



Aventurero



Respuesta Responder a este mensaje
#4 Aventurero
26/10/2005 - 22:03 | Informe spam
Gracias mostruo!!!
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida