Passo a passo para importação dos dados:


1. Informações


A base de dados fornecida para os cenários de remoção de estabelecimentos inativos ou distrato é disponibilizada no formato XML, contendo as informações necessárias para a importação no banco de dados. A seguir, apresentamos um exemplo de criação da tabela Bairros, acompanhado do processo de importação dos dados XML para o SQL Server.



2. Estrutura do arquivo


Apos realizar o download, realize a extração dos arquivos para importação. Abaixo exemplo de arquivos extraídos.




3. Criação da tabela no banco de destino


Ao abrir o arquivo XML, este estará sem formatação. Para formatá-lo, utilize qualquer ferramenta de formatação de documentos XML.

O editor de texto Notepad++ possui um plugin com essa funcionalidade, basta abrir o programa, ir em Plugins -> Gerenciador de Plugins -> Pesquisar por “XML Tools” -> Instalar, depois reabrir o programa, abrir o XML novamente e utilizar o atalho Ctrl+Alt+Shift+B para formatar o arquivo.



A seguir, crie uma tabela no SQL Server de acordo com a schemma da estrutura apresentada no início do arquivo:

 


Mapeie os tipos XML para equivalentes no SQL Server conforme exemplo abaixo:


 

 

Tabela criada de acordo com a estrutura fornecida no arquivo “.xml”






4. Importação dos dados por Script no SQL Server



Abaixo contém exemplo de script para inserção de dados na tabela criada no SQL Server


DECLARE @XML XML;

SELECT @XML = CAST(BulkColumn AS XML)

FROM OPENROWSET(

    BULK N'C:\TempMovere\BASE-DADOS-MOVERE\Bairros.xml',

    SINGLE_CLOB

) AS A;

 

IF OBJECT_ID('tempdb..#StagingBairros') IS NOT NULL

    DROP TABLE #StagingBairros;

 

CREATE TABLE #StagingBairros (

    f0149idbairro INT,

    f0149nome VARCHAR(255),  

    f0149ativo BIT,

    f0001idempresa INT

);

 

INSERT INTO #StagingBairros (f0149idbairro, f0149nome, f0149ativo, f0001idempresa)

 SELECT

  T.row.value('f0149idbairro[1]', 'INT'),

  T.row.value('f0149nome[1]', 'VARCHAR(255)'),

  T.row.value('f0149ativo[1]', 'BIT'),

  T.row.value('f0001idempresa[1]', 'INT')

 FROM @XML.nodes('Tabela/Row') AS T(row);

 

INSERT INTO Bairros (f0149idbairro, f0149nome, f0149ativo, f0001idempresa)

 SELECT f0149idbairro, f0149nome, f0149ativo, f0001idempresa

 FROM #StagingBairros;

 

DROP TABLE #StagingBairros;




 


 




5. Conferência da importação dos dados


  • Após finalizar a importação dados já disponíveis na tabela criada.



Prosseguir com a importação dos demais arquivos conforme exemplo descrito.