Erro ao tentar executar exec Importa_Vendas

Na página 104 do livro Business Inteligence, ao tentar executar a procedure Importa_Vendas, ocorre o erro abaixo:

(2 linha(s) afetadas)
Mensagem 4832, Nível 16, Estado 1, Procedimento Importa_Vendas, Linha 13
Carregamento em massa: fim de arquivo inesperado no arquivo de dados.
Mensagem 7399, Nível 16, Estado 1, Procedimento Importa_Vendas, Linha 13
O provedor do OLE DB “BULK” para o servidor vinculado “(null)” reportou um erro. O provedor não forneceu informações sobre o erro.
Mensagem 7330, Nível 16, Estado 2, Procedimento Importa_Vendas, Linha 13
Não é possível buscar uma linha no provedor do OLE DB “BULK” para o servidor vinculado “(null)”.

Não ocorreram erros ao criar a procedure

Tentei instalar um hotfix através do link: http://support.microsoft.com/kb/937545/pt-br porém sem sucesso. Fonte: https://social.msdn.microsoft.com/Forums/pt-BR/b6e112c2-18e3-4812-beb2-b82b179a9187/importando-usando-o-bulk-insert-dados-em-formato-txt-para-sql-server-2005?forum=transactsqlpt

Quase um mês depois e nada de alguém ajudar. Um suporte de quem criou o livro viria a calhar.

Olá, Segue o código que usei:

USE [DS]
GO
/****** Object: StoredProcedure [dbo].[Importa_Vendas] Script Date: 06/06/2019 14:29:36 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER procedure [dbo].[Importa_Vendas]
as
Declare @STR as nvarchar(1000)
– Apaga os dados da TbImp_Vendas caso existam para uma nova carga;
truncate table TbImp_Vendas
– Renomeia arquivos existentes para um nome esperado:
set @STR = ‘Move c:\Arquivos*.rpt c:\Arquivos\MassaDados.rpt’
exec xp_cmdshell @STR
–Importa os dados do arquivo para o SQL:
bulk insert [dbo].[TbImp_Vendas]
from ‘C:\Arquivos\MassaDados.rpt’
with (
FIRSTROW = 3,
FIELDTERMINATOR = ‘|’,
ROWTERMINATOR = ‘\n’,
LASTROW = 3
)
– Faz o log do processo:
insert into [dbo].[Adm_Log] values (newid(), getdate(), ‘Importa MassaDados.rpt’,‘S’, ‘Arquivo importado com sucesso’)
– Copia o arquivo para a pasta “Historico”, renomeando ele com a data da importação:
declare @nomearquivo varchar(50)
Set @nomearquivo = (Select cast(year(getdate())as char(4)
) + right(‘00’+ cast(month(getdate())as varchar(2)),2)+ right(‘00’

  • cast(day(getdate())as varchar(2)),2) +’_Vendas.rpt’)
    Set @STR = ‘move c:\Arquivos\MassaDados.rpt c:\Arquivos\Historico’ + @nomearquivo
    exec xp_cmdshell @STR

e Depois executei esse outro:

USE [DS]
GO

DECLARE @RC int

– TODO: Defina valores de parâmetros aqui.

EXECUTE @RC = [dbo].[Importa_Vendas]
GO