none
CONSULTAR DATOS DE ARCHIVO DE EXCEL DESDE SQL SERVER 2012 RRS feed

  • Pregunta

  • Que tal  todos, espero alguien me pueda orientar en lo siguiente,

    alguno sabra como puedo realizar una consulta desde sql sever 2012 hacia un archivo de excel ,

    lo que quiero es poder consultar los datos de un archivo excel y poderlos insertar en una tabla de sql server 2012 

    saludos

    viernes, 19 de agosto de 2016 20:52

Todas las respuestas

  • Hay varias formas de conseguirlo. Quizá la más simple sea usar un OpenDataSource:

    SELECT * FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',
    'Data Source=C:\carpeta\fichero.xls;Extended Properties=Excel 8.0')...[Hoja1$]

    viernes, 19 de agosto de 2016 21:22
  • que tal gracias ,encontre este

     SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
    'Excel 8.0;Database=C:\insercion.xls', 'SELECT * FROM [Hoja1$]')

    pero marco este error :

    Cannot create an instance of OLE DB provider "Microsoft.Jet.OLEDB.4.0" for linked server "(null)".


    viernes, 19 de agosto de 2016 22:39
  • ujanM,

    Fíjate en las propiedades de conexión, ¿el origen de datos es un archivo de MS-Excel versión 8.0 (creo que esa versión fue del antiguo Office 98)? Tienes que especificar el proveedor adecuado según la versión de Ms-Office. No olvides realizar previamente la siguiente configuración:

    EXEC sp_configure 'show advanced options', 1;
    GO
    RECONFIGURE;
    GO
    EXEC sp_configure 'Ad Hoc Distributed Queries', 1
    GO
    RECONFIGURE;
    GO


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    viernes, 19 de agosto de 2016 22:46
  • Cannot create an instance of OLE DB provider "Microsoft.Jet.OLEDB.4.0" for linked server "(null)".

    ¿Puede ser que estés ejecutando un SQL Server de 64 bits? Solo hay proveedor JET en 32 bits. Si lo necesitas en 64, instala el proveedor ACE de 64 bits y llámalo así:

    SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;
    HDR=NO; IMEX=1; Database=c:\insercion\.xlsx'
    , 'SELECT * FROM [Sheet1$]')

    Cerciórate de que las credenciales del servicio SQL Server (no las credenciales del usuario que ejecuta la Select) tienen permisos suficientes para acceder al fichero en disco.

    sábado, 20 de agosto de 2016 7:12