none
JOB para importar uma planilha de EXCEL para o SQL RRS feed

Respostas

  • Lucimario,

    Para utilizar planilhas Excel, à partir do Office 97, você pode utilizar o ACE. 

    Faça o download do arquivo pelo link abaixo:
     http://www.microsoft.com/en-us/download/details.aspx?id=23734 

    Provavelmente você deverá configurar antes sua instância SQL para poder "ver" o driver. Segue abaixo:

    USE [master]
    GO
    
    --CONFIGURANDO À INSTÂNCIA SQL PARA ACEITAR OPÇÕES AVANÇADAS
    exec sp_configure 'show advanced options', 1
    RECONFIGURE
    exec sp_configure 'Ad Hoc Distributed Queries', 1
    RECONFIGURE
    
    --ADICIONANDO OS DRIVERS NA INSTÂNCIA
    EXEC master .dbo. sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0' , N'AllowInProcess' , 1
    GO
    EXEC master .dbo. sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0' , N'DynamicParameters' , 1
    GO
    
    --CONSULTANDO UMA PLANILHA
    SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0' ,
    'Excel 8.0;Database=C:\Planilhas\Teste.xls;' ,
    'SELECT * FROM [Plan1$]' );
    

    É importante também verificar se o usuário do servidor SQL possui acesso ao diretório do Windows onde está sua planilha. 

    O JET está obsoleto e não possui versão 64 bits, o que deprecia sua performance. Como indicado na orientação do MVP Olaf Helper, o Access Database Engine é o substituto deste driver. Veja o post:

    http://social.msdn.microsoft.com/Forums/pt-BR/05910244-ca39-49f8-bbd7-6844cd33e1bc/microsoft-access-driver-mdb-accdb-download-for-windows-7-need-to-make-odbc-connection-using-vb10?forum=sqldataaccess

    O download do pacote também é claro:

    http://www.microsoft.com/en-us/download/details.aspx?id=13255

    No Blog MSDN, esta citação também é reforçada:

    http://blogs.msdn.com/b/farukcelik/archive/2010/06/04/accessing-excel-files-on-a-x64-machine.aspx

    Se ajudou na sua solução, não esqueça de marcar como resposta !

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA | MCSA - SQL Server 2012
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"
    • Sugerido como Resposta ELIANA RUNGO quinta-feira, 3 de abril de 2014 13:47
    • Marcado como Resposta Giovani Cr segunda-feira, 7 de abril de 2014 20:10
    quinta-feira, 3 de abril de 2014 12:25
    Moderador
  • Utilize o SSIS - Integration Services para isto, será muito mais simples a solução e o desenvolvimento.

    http://blog.hoegaerden.be/2010/04/20/importing-excel-data-using-integration-services/

    https://www.simple-talk.com/sql/ssis/moving-data-from-excel-to-sql-server---10-steps-to-follow/


    Vithor da Silva e Silva | MCTS - SQL Server 2008, Implementation and Maintenance Site: http://www.vssti.com.br Blog: http://vssti.blogspot.com

    quinta-feira, 3 de abril de 2014 12:48

Todas as Respostas

  • Lucimario,

    Para utilizar planilhas Excel, à partir do Office 97, você pode utilizar o ACE. 

    Faça o download do arquivo pelo link abaixo:
     http://www.microsoft.com/en-us/download/details.aspx?id=23734 

    Provavelmente você deverá configurar antes sua instância SQL para poder "ver" o driver. Segue abaixo:

    USE [master]
    GO
    
    --CONFIGURANDO À INSTÂNCIA SQL PARA ACEITAR OPÇÕES AVANÇADAS
    exec sp_configure 'show advanced options', 1
    RECONFIGURE
    exec sp_configure 'Ad Hoc Distributed Queries', 1
    RECONFIGURE
    
    --ADICIONANDO OS DRIVERS NA INSTÂNCIA
    EXEC master .dbo. sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0' , N'AllowInProcess' , 1
    GO
    EXEC master .dbo. sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0' , N'DynamicParameters' , 1
    GO
    
    --CONSULTANDO UMA PLANILHA
    SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0' ,
    'Excel 8.0;Database=C:\Planilhas\Teste.xls;' ,
    'SELECT * FROM [Plan1$]' );
    

    É importante também verificar se o usuário do servidor SQL possui acesso ao diretório do Windows onde está sua planilha. 

    O JET está obsoleto e não possui versão 64 bits, o que deprecia sua performance. Como indicado na orientação do MVP Olaf Helper, o Access Database Engine é o substituto deste driver. Veja o post:

    http://social.msdn.microsoft.com/Forums/pt-BR/05910244-ca39-49f8-bbd7-6844cd33e1bc/microsoft-access-driver-mdb-accdb-download-for-windows-7-need-to-make-odbc-connection-using-vb10?forum=sqldataaccess

    O download do pacote também é claro:

    http://www.microsoft.com/en-us/download/details.aspx?id=13255

    No Blog MSDN, esta citação também é reforçada:

    http://blogs.msdn.com/b/farukcelik/archive/2010/06/04/accessing-excel-files-on-a-x64-machine.aspx

    Se ajudou na sua solução, não esqueça de marcar como resposta !

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA | MCSA - SQL Server 2012
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"
    • Sugerido como Resposta ELIANA RUNGO quinta-feira, 3 de abril de 2014 13:47
    • Marcado como Resposta Giovani Cr segunda-feira, 7 de abril de 2014 20:10
    quinta-feira, 3 de abril de 2014 12:25
    Moderador
  • Utilize o SSIS - Integration Services para isto, será muito mais simples a solução e o desenvolvimento.

    http://blog.hoegaerden.be/2010/04/20/importing-excel-data-using-integration-services/

    https://www.simple-talk.com/sql/ssis/moving-data-from-excel-to-sql-server---10-steps-to-follow/


    Vithor da Silva e Silva | MCTS - SQL Server 2008, Implementation and Maintenance Site: http://www.vssti.com.br Blog: http://vssti.blogspot.com

    quinta-feira, 3 de abril de 2014 12:48