sql >> Base de Datos >  >> RDS >> Sqlserver

No se pueden importar datos de Excel 2003 a la base de datos usando la función openrowset

Consulta SQL para la función OPENROWSET:--

1) Abra SQL Server Management Studio

2) Abra el panel de consultas y escriba los siguientes comandos

3) Para archivos de Excel 97 – 2003 que son archivos con extensión XLS use

SELECT * INTO [dbo].[Addresses]
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=D:\SQL Scripts\msp.xls;IMEX=1;HRD=Yes','SELECT * FROM [Sheet1$]')

i. Creará una tabla con el nombre Direcciones en la base de datos seleccionada actualmente.

ii. Microsoft.Jet.OLEDB.4.0 es el uso del controlador para la conversión

iii. Archivo de Excel con ruta - D:\SQL Scripts\msp.xls

IV. IMEX=1 propiedad incluida, las columnas que contienen tipos de datos entremezclados se tratan como tipos de datos de cadena/texto.

v. La propiedad HRD =Sí significa que la fila superior del archivo de Excel consiste en el nombre del encabezado de columna

vi. Sheet1 es el nombre de la hoja que desea importar

vii. Excel 8.0 especifica que es un archivo de Excel con formato 97 – 2003

4) Para usar la consulta de filtro, el usuario puede usar la cláusula where también con este comando como

SELECT * INTO [dbo].[Addresses]
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=D:\SQL Scripts\msp.xls;IMEX=1;HRD=Yes','SELECT * FROM [Sheet1$]') where [column_name]=’value’

5) Para copiar el archivo de Excel en la tabla SQL predefinida, use la función OPENROWSET con el comando de inserción como:-

Create table Custom (Source_IP_ADD varchar(20),API_NAME varchar(50),COUNT_NO varchar(5),CLIENT_ID varchar(50),Date_OF_INVOKE varchar(50))

INSERT INTO [dbo].[Custom] ( [Source_IP_ADD], [API_NAME], [COUNT_NO], [CLIENT_ID], [Date_OF_INVOKE])

    SELECT [Source_IP_ADDR], [API_NAME], [COUNT_NO], [CLIENT_ID], [Date_INVOK] FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0','Excel 8.0;Database=D:\SQL Scripts\msp.xls;IMEX=1;HRD=Yes','SELECT * FROM [Sheet1$]')

6) Para archivos de Excel 2007 – 2010 que son archivos con extensión XLSX use

SELECCIONE *INTO [dbo].[Direcciones]FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0' ,'Excel 12.0;Database=D:\SQL Scripts\msp.xlsx;HDR=YES;IMEX=1' ,'SELECT * DESDE [Hoja1$]')

i. Creará una tabla con el nombre Direcciones en la base de datos seleccionada actual

ii. Microsoft.ACE.OLEDB.12.0 es el uso del controlador para la conversión

iii. Archivo de Excel con ruta - D:\SQL Scripts\msp.xlsx

IV. IMEX=1 propiedad incluida, las columnas que contienen tipos de datos entremezclados se tratan como tipos de datos de cadena/texto.

v. La propiedad HRD =Sí significa que la fila superior del archivo de Excel consiste en el nombre del encabezado de columna

vi. Sheet1 es el nombre de la hoja que desea importar

vii. Excel 12.0 especifica que es un archivo de Excel en formato 2007 – 2010

7) Para copiar el archivo de Excel en la tabla SQL predefinida, use la función OPENROWSET con el comando de inserción como:-

Create table Custom (Source_IP_ADD varchar(20),API_NAME varchar(50),COUNT_NO varchar(5),CLIENT_ID varchar(50),Date_OF_INVOKE varchar(50))

INSERT INTO [dbo].[Custom] ( [Source_IP_ADD], [API_NAME], [COUNT_NO], [CLIENT_ID], [Date_OF_INVOKE])
SELECT [Source_IP_ADDR], [API_NAME], [COUNT_NO], [CLIENT_ID], [Date_INVOK] FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0' ,'Excel 12.0;Database=D:\SQL Scripts\msp.xlsx;HDR=YES;IMEX=1' ,'SELECT * FROM [Sheet1$]')