Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Não é possível importar dados do Excel 2003 para o banco de dados usando a função openrowset


Consulta SQL para a função OPENROWSET:--

1) Abra o SQL Server Management Studio

2) Abra o painel de consultas e escreva os seguintes comandos

3) Para arquivos Excel 97 – 2003 que são arquivos com extensão 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$]')

eu. Ele irá criar uma tabela com o nome Addresses no banco de dados selecionado atualmente.

ii. Microsoft.Jet.OLEDB.4.0 é o driver usado para conversão

iii. Arquivo Excel com caminho - D:\SQL Scripts\msp.xls

4. IMEX=1 propriedade incluída, as colunas que contêm tipos de dados misturados são tratadas como tipos de dados string/texto.

v. A propriedade HRD =Sim significa que a linha superior do arquivo excel consiste no nome do cabeçalho da coluna

vi. Sheet1 é o nome da planilha que você deseja importar

vii. O Excel 8.0 especifica que é um arquivo excel de formato 97 – 2003

4) Para usar a consulta de filtro o usuário pode usar a cláusula where também com 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 o arquivo excel na tabela SQL predefinida, use a função OPENROWSET com o comando insert 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 arquivos do Excel 2007 – 2010 que são arquivos com extensão XLSX, use

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

eu. Irá criar uma tabela com o nome Endereços na base de dados selecionada

ii. Microsoft.ACE.OLEDB.12.0 é o driver usado para conversão

iii. Arquivo Excel com caminho - D:\SQL Scripts\msp.xlsx

4. IMEX=1 propriedade incluída, as colunas que contêm tipos de dados misturados são tratadas como tipos de dados string/texto.

v. A propriedade HRD =Sim significa que a linha superior do arquivo excel consiste no nome do cabeçalho da coluna

vi. Sheet1 é o nome da planilha que você deseja importar

vii. O Excel 12.0 especifica que é um arquivo excel de formato 2007 – 2010

7) Para copiar o arquivo excel na tabela SQL predefinida, use a função OPENROWSET com o comando insert 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$]')