Quantcast
Channel: Erro na Importação do arquivo txt
Viewing all articles
Browse latest Browse all 12

Erro na Importação do arquivo txt

$
0
0

Bom dia pessoal

Estou tentando desenvolver uma stored procedure que faça à importação de arquivos txt até ai tudo bem, porém como eu tenho vários arquivos txt em uma determinada pasta eu preciso importar um de cada vez segue o que estou pensando:

CREATE TABLE #Lista
(DIRETORIO VARCHAR(613));

CREATE TABLE #FORNECEDORES(
                            TIPO VARCHAR(1),
                            CODIGO INTEGER,
                            NOME VARCHAR(53),
                            CGC VARCHAR(74),
                            ENDERECO VARCHAR(51),
                            BAIRRO VARCHAR(20),
                            CIDADE VARCHAR(32), 
                            CEP VARCHAR(20),
                            CXPOSTAL VARCHAR(20),
                            EMAIL VARCHAR(40),
                            TELEFONE VARCHAR(20),
                            TELEX VARCHAR(20),
                            FEDERACAO VARCHAR(03),
                            NUM_PESSOA VARCHAR(09),
                            BAIRRO_COBR VARCHAR(20),
                            CXPOSTAL_COBR VARCHAR(20),
                            CIDADE_COBR VARCHAR(32),
                            CEP_COBR VARCHAR(20),
                            FEDERACAO_COBR VARCHAR(03),
                            AUX VARCHAR(01),
                            EMITENTE1 VARCHAR(09),
                            NOME_ABREV1 VARCHAR(15),
                            AUX2 VARCHAR(01),
                            EMITENTE2 VARCHAR(09),
                            NOME_ABREV2 VARCHAR(15),
                            CGC1 VARCHAR(18),
                            FEDERACAO3 VARCHAR(03));
                            
Insert Into #Lista
EXEC master..xp_cmdshell 'dir C:\Pharmacy\dados\1\ /b';

declare @arquivo varchar(100);
DECLARE @CAMPO VARCHAR(20);
declare @codigo integer;
set @arquivo = '';

DECLARE CAR_FORNECEDORES CURSOR FOR 
select diretorio  from #Lista where SUBSTRING(diretorio,1,2) = 'EA';
OPEN CAR_FORNECEDORES
FETCH NEXT FROM CAR_FORNECEDORES INTO @CAMPO
WHILE @@FETCH_STATUS = 0
BEGIN
   SET @arquivo = 'C:\PHARMACY\DADOS\1\' + @CAMPO;   
   bulk insert #FORNECEDORES -- inserir na tabela desejada
   from @ARQUIVO -- caminho do arquivo e formato
   with
   (
     CODEPAGE = 'ACP',       -- comando necessário para não ter problemas com caracteres especiais como acentos
     fieldterminator = ';',  -- caractere que separa os campos no arquivo
     rowterminator = '\n'    -- referencia para fim da linha
   )   
   FETCH NEXT FROM CAR_FORNECEDORES INTO @CAMPO;
END

/*SELECT * FROM #Lista*/


CLOSE CAR_FORNECEDORES ;
DEALLOCATE CAR_FORNECEDORES;
  
DROP TABLE #Lista;
DROP TABLE #FORNECEDORES;

Primeiramente eu crio uma temp #lista onde fica todos os arquivos de uma pasta depois crio um cursos onde concateno o diretorio + o nome do arquivo perfeito, porém quando eu passo o @arquivo para o from do bulk insert ele da erro tem alguma forma deu passar para o from o conteudo da variavel ou outra forma de fazer isso como descrevi acima o erro que da segue abaixo:

Mensagem 102, Nível 15, Estado 1, Linha 49
Incorrect syntax near '@ARQUIVO'.


Viewing all articles
Browse latest Browse all 12

Latest Images





Latest Images