Unanswered Bulk Insert

  • segunda-feira, 30 de abril de 2012 13:13
     
     
    Bom dia,

    Estou usando a instrução abaixo no SQL Server 2008:

    BULK INSERT [NomeTabela] FROM 'C:\Pasta\Arquivo.txt' WITH (BATCHSIZE=100000, FIELDTERMINATOR = '|',CODEPAGE='ACP')

    E está ocorrendo o seguinte erro:

    "Não é possível carregar em massa porque o arquivo "C:\Pasta\Arquivo.txt" não pôde ser aberto. Código do erro do sistema operacional 5(Acesso negado.)."

    O arquivo não está em uso. Como resolver?

    Grato

Todas as Respostas

  • segunda-feira, 30 de abril de 2012 17:44
     
     

    Claudio, boa tarde.

    Talvez o usuário que vc esteja logado não tem permissão para abrir o arquivo via bulk insert.

    Abs;


    Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp

  • segunda-feira, 30 de abril de 2012 22:55
     
     

    esta sintaxe dá para importar dados de um ficheiro mdb?

    obrigado


    Visual Basic 2008 Express Edition SQL Server Management Studio

  • terça-feira, 1 de maio de 2012 01:17
     
     

    Jonas, boa noite,

    O bulk insert serve somente para importações de arquivos textos. Para importações de arquivo MDB é recomendável utilizar a ferramenta de ETL do SQL (SSIS).

    Abs.


    Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp

  • terça-feira, 1 de maio de 2012 01:22
     
     

    pode passar um exemplo para mim?

    obrigado


    Visual Basic 2008 Express Edition SQL Server Management Studio

  • terça-feira, 1 de maio de 2012 02:10
    Moderador
     
     

    Claudio,

    o usuário sob o qual o serviço do SQL está rodando deve estar sem acesso ao arquivo. Adicione o usuário à lista de permissões do arquivo ou da pasta onde ele está.


    Roberson Ferreira - Database Developer
    Acesse: www.robersonferreira.com.br
    Email: contato@robersonferreira.com.br

    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

  • terça-feira, 1 de maio de 2012 14:28
     
     

    Bom dia, Eduardo.

    Como atribuir permissão para o usuário abrir o arquivo via bulk insert?

  • terça-feira, 1 de maio de 2012 14:32
     
     

    Olá Roberson,

    Todos os usuários têm todas as permissões na pasta e arquivo, exceto "Permissões especiais".

    Sendo que a instrução executou normalmente em uma máquina virtual com o Windows XP. O erro ocorre no Windows 7.

  • quarta-feira, 2 de maio de 2012 23:09
    Moderador
     
     

    Cláudio, estranho, pois este erro normalmente acontece por falta de acesso ao arquivo.

    Você já tentou colocar o arquivo em outro local? No raiz, por exemplo.

    Você está logando com qual usuário no SQL para fazer o Bulk Insert? É com o sysadmin?


    Roberson Ferreira - Database Developer
    Acesse: www.robersonferreira.com.br
    Email: contato@robersonferreira.com.br

    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

  • quinta-feira, 3 de maio de 2012 02:25
     
     

    Roberson, com o arquivo em outros locais continua ocorrendo o mesmo erro.

    Sim, estou logando com o sysadmin.

    Como alternativa, estou usando SQLBulkCopy no VB.Net, mas gostaria de resolver o Bulk Insert no SQL Server, deve ser bem mais performático.