Pergunta

Alguém tem uma técnica para gerar comandos de criação (e inserção de dados) de tabela SQL de forma pragmática a partir de um arquivo CSV (ou planilha em um arquivo .xls)?

Eu tenho um sistema de banco de dados de terceiros que gostaria de preencher com dados de um arquivo csv (ou planilha em um arquivo xls), mas o importador fornecido não pode criar a estrutura da tabela automaticamente como faz a importação.Meu arquivo csv tem muitas tabelas com muitas colunas, então eu gostaria de automatizar o processo de criação de tabelas, bem como a importação de dados, se possível, mas não tenho certeza sobre como gerar a instrução create...

Foi útil?

Solução

No servidor SQL é tão fácil quanto

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

Outras dicas

Eu recomendo dar uma olhada csvkit.Isso é csvsql A função pode gerar instruções de inserção de tabela, ou até mesmo executá-las para você, a partir da maioria das fontes de dados tabulares.

BULK 
INSERT CSVTest
        FROM 'c:\csvtest.txt'
            WITH
    (
                FIELDTERMINATOR = ',',
                ROWTERMINATOR = '\n'
    )

Infelizmente estou usando um SQLEngine para sistemas embarcados, portanto ele não suporta fontes de dados BULK INSERT ou OLEDB, e é por isso que estava pensando em adotar a abordagem de geração de instruções SQL.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top