0
我試圖使用BCP實用程序將數據與這些命令的輸出,但我在查詢得到一個錯誤......在SQL Server中的BCP實用工具的查詢語法使用VARCHAR
我宣佈諸多變數,我的問題是與查詢,因爲我必須使用varchar列進行篩選(CO_LIN
是varchar(6)
),但如果我使用'
來包裝變量的值@LINEAPRODUCTO
我在SQL Server查詢工具中遇到錯誤,但是如果我不要使用任何東西它給我這個錯誤:
Invalid column name 'MEN'
(MEN
是字符串值我在變量聲明中設置)
DECLARE @PATH_ARC VARCHAR(200)
DECLARE @USUARIO VARCHAR(20)
DECLARE @PASSWORD VARCHAR(20)
DECLARE @TABLA VARCHAR(40)
DECLARE @SERVIDOR VARCHAR(100)
DECLARE @ARCHIVOSALIDA VARCHAR(200)
DECLARE @RUTAEJECUTAR VARCHAR(500)
DECLARE @MES VARCHAR(2)
DECLARE @DIA VARCHAR(2)
DECLARE @ANNO VARCHAR(4)
DECLARE @BASEDEDATOS VARCHAR(20)
DECLARE @LINEAPRODUCTO VARCHAR(6)
DECLARE @CONSULTA VARCHAR(300)
SET NOCOUNT ON;
-- Asignación de valores de las variables para la ejecución del stored procedure
SET @TABLA ='dbo.art'
SET @SERVIDOR = 'RJLD-LAPTOP\SQLEXPRESS'
SET @USUARIO = 'exp'
SET @PASSWORD = 'exp'
SET @PATH_ARC = 'C:\PRUEBA\'
SET @BASEDEDATOS = 'DEMO'
SET @LINEAPRODUCTO = 'MEN'
SET @MES = CAST(MONTH(GETDATE()) AS nchar(2))
IF LEN(RTRIM(LTRIM(@MES))) = 1
BEGIN
SET @MES = '0' + RTRIM(LTRIM(@MES))
END
SET @DIA = CAST(DAY(GETDATE()) AS nchar(2))
IF LEN(RTRIM(LTRIM(@DIA))) =1
BEGIN
SET @DIA = '0' + RTRIM(LTRIM(@DIA))
END
SET @ANNO = CAST(YEAR(GETDATE()) AS nchar(4))
SET @ARCHIVOSALIDA = 'RI_C58-L02_' + @ANNO + @MES + @DIA + '.txt'
SET @PATH_ARC = '"' + @PATH_ARC + @ARCHIVOSALIDA + '"'
SET @CONSULTA = '"select RTRIM(LTRIM(ITEM)),' + @ANNO + ',' + @MES + ',' + @DIA + ',CO_PROV from ' + @TABLA + ' WHERE CO_LIN=' + @LINEAPRODUCTO + '"'
SET @RUTAEJECUTAR = 'bcp ' + @CONSULTA + ' queryout ' + @PATH_ARC + ' -S ' + @SERVIDOR + ' -U ' + @USUARIO + ' -P ' + @PASSWORD + ' -c -t "|" -d ' + @BASEDEDATOS
-- select @RUTAEJECUTAR
EXEC xp_cmdshell @RUTAEJECUTAR