Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Impossible d'importer des données d'Excel 2003 dans la base de données à l'aide de la fonction openrowset

Requête SQL pour la fonction OPENROWSET :--

1) Ouvrez SQL Server Management Studio

2) Ouvrez le bloc de requête et écrivez les commandes suivantes

3) Pour les fichiers Excel 97 - 2003, c'est-à-dire les fichiers avec l'extension XLS, utilisez

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$]')

je. Il créera une table avec le nom Adresses dans la base de données actuellement sélectionnée.

ii. Microsoft.Jet.OLEDB.4.0 est le pilote utilisé pour la conversion

iii. Fichier Excel avec chemin - D:\SQL Scripts\msp.xls

iv. IMEX=1 propriété incluse, les colonnes qui contiennent des types de données mélangés sont traitées comme des types de données chaîne/texte.

v. La propriété HRD =Yes signifie que la ligne supérieure du fichier Excel se compose du nom de l'en-tête de colonne

vi. Sheet1 est le nom de la feuille que vous souhaitez importer

vii. Excel 8.0 spécifie qu'il s'agit d'un fichier Excel au format 97 - 2003

4) Pour utiliser la requête de filtre, l'utilisateur peut également utiliser la clause where avec cette commande comme

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) Pour copier le fichier Excel dans la table SQL prédéfinie, utilisez la fonction OPENROWSET avec la commande d'insertion comme :-

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) Pour les fichiers Excel 2007 - 2010, c'est-à-dire les fichiers avec l'extension XLSX, utilisez

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

je. Il créera une table avec le nom Adresses dans la base de données actuellement sélectionnée

ii. Microsoft.ACE.OLEDB.12.0 est le pilote utilisé pour la conversion

iii. Fichier Excel avec chemin - D:\SQL Scripts\msp.xlsx

iv. IMEX=1 propriété incluse, les colonnes qui contiennent des types de données mélangés sont traitées comme des types de données chaîne/texte.

v. La propriété HRD =Yes signifie que la ligne supérieure du fichier Excel se compose du nom de l'en-tête de colonne

vi. Sheet1 est le nom de la feuille que vous souhaitez importer

vii. Excel 12.0 spécifie qu'il s'agit d'un fichier Excel au format 2007 - 2010

7) Pour copier le fichier Excel dans la table SQL prédéfinie, utilisez la fonction OPENROWSET avec la commande d'insertion comme :-

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$]')