<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Arquivo para CSV - Bóson Treinamentos em Ciência e Tecnologia</title>
	<atom:link href="https://www.bosontreinamentos.com.br/tag/csv/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.bosontreinamentos.com.br/tag/csv/</link>
	<description>Artigos e Tutoriais sobre Desenvolvimento de Software, Bancos de Dados SQL, Linux, Lógica de Programação, Inteligência Artificial, Hardware, Eletrônica, Arduino, Técnicas e Teorias de Estudo e Aprendizagem, Carreira em TI, Ciências Cognitivas, e muito mais!</description>
	<lastBuildDate>Wed, 10 Jul 2024 20:22:56 +0000</lastBuildDate>
	<language>pt-BR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.6</generator>
	<item>
		<title>Importar arquivo CSV no SQL Server para inserir registros em uma tabela</title>
		<link>https://www.bosontreinamentos.com.br/sql-com-sql-server/importar-arquivo-csv-no-sql-server-para-inserir-registros-em-uma-tabela/</link>
					<comments>https://www.bosontreinamentos.com.br/sql-com-sql-server/importar-arquivo-csv-no-sql-server-para-inserir-registros-em-uma-tabela/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[Fábio dos Reis]]></dc:creator>
		<pubDate>Thu, 21 Mar 2024 12:06:54 +0000</pubDate>
				<category><![CDATA[SQL com SQL Server]]></category>
		<category><![CDATA[Bancos de Dados]]></category>
		<category><![CDATA[CSV]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[SQL Server]]></category>
		<guid isPermaLink="false">https://www.bosontreinamentos.com.br/?p=20025</guid>

					<description><![CDATA[<p>Como importar arquivo CSV no SQL Server Neste tutorial mostro como importar um arquivo no formato CSV para uma tabela de um banco de dados SQL Server, de modo a realizar a inserção de múltiplos registros de uma só vez, por meio de uma operação INSERT INTO. Para tal vamos usar dois arquivos: o arquivo CSV propriamente dito, contendo os dados a serem inseridos na tabela, e um arquivo especificador de formatos para ajustar os dados do arquivo CSV com as colunas específicas da tabela, além é claro do código SQL que executará a tarefa de inserção dos registros em bulk (vários de uma vez). O que é um arquivo CSV? Um arquivo CSV (Comma-Separated Values / Valores Separados por Vírgulas) é um tipo de arquivo de texto simples que armazena dados tabulares de forma estruturada, empregado com frequência para importar e exportar dados entre diferentes programas, sistemas e plataformas. Neste tipo de arquivo, cada linha representa uma entrada de dados (um registro) e cada campo (coluna) é separado por um caractere delimitador, geralmente uma vírgula (&#8220;,&#8221;), ponto e vírgula (&#8220;;&#8221;) ou tabulação (&#8220;tab&#8221;). O mais comum é usar a vírgula, daí o nome do formato. Cada linha no arquivo [...]</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/sql-com-sql-server/importar-arquivo-csv-no-sql-server-para-inserir-registros-em-uma-tabela/">Importar arquivo CSV no SQL Server para inserir registros em uma tabela</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Como importar arquivo CSV no SQL Server</h2>
<p>Neste tutorial mostro como importar um arquivo no formato CSV para uma tabela de um banco de dados SQL Server, de modo a realizar a inserção de múltiplos registros de uma só vez, por meio de uma operação <a href="https://www.bosontreinamentos.com.br/sql-com-sql-server/8-t-sql-insert-into-values-inserir-dados-nas-tabelas-sql-server/">INSERT INTO</a>.</p>
<p>Para tal vamos usar dois arquivos: o arquivo CSV propriamente dito, contendo os dados a serem inseridos na tabela, e um arquivo especificador de formatos para ajustar os dados do arquivo CSV com as colunas específicas da tabela, além é claro do código SQL que executará a tarefa de inserção dos registros em bulk (vários de uma vez).</p>
<h3>O que é um arquivo CSV?</h3>
<p>Um arquivo <strong>CSV</strong> (<em>Comma-Separated Values</em> / Valores Separados por Vírgulas) é um tipo de arquivo de texto simples que armazena dados tabulares de forma estruturada, empregado com frequência para importar e exportar dados entre diferentes programas, sistemas e plataformas.</p>
<p>Neste tipo de arquivo, cada linha representa uma entrada de dados (um registro) e cada campo (coluna) é separado por um caractere delimitador, geralmente uma vírgula (&#8220;,&#8221;), ponto e vírgula (&#8220;;&#8221;) ou tabulação (&#8220;tab&#8221;). O mais comum é usar a vírgula, daí o nome do formato.</p>
<p>Cada linha no arquivo representa um registro e os campos podem conter texto, números, datas ou outros tipos de dados quaisquer. Usamos arquivos csv em aplicativos de planilhas, bancos de dados, programas para análise de dados e diversas outras aplicações, pois são bastante simples e fáceis de manipular.</p>
<p>Vamos usar neste tutorial um arquivo CSV de nome Livros.csv, que conterá dados a serem inseridos em uma tabela de nome <strong>Livro</strong>, e com ele vamos cadastrar vários registros de forma rápida e simples.</p>
<h3>Arquivo CSV de exemplo: Livros.csv</h3>
<p>A seguir temos o conteúdo do arquivo a ser usado no exemplo de inserção de linhas na tabela. Neste arquivo, a primeira linha é uma linha de cabeçalho, contendo os nomes das colunas da tabela que receberá os dados (tabela de nome <strong>Livro</strong>), separados por vírgulas. Você deve alterar o conteúdo desse arquivo de acordo com a tabela do banco que está usando, seguindo as instruções na sequência.</p>
<p>As linhas subsequentes contém os dados em si, sendo que cada linha do arquivo corresponde a uma linha a ser inserida na tabela (um registro), também separadas por vírgulas, seguindo a mesma ordem das colunas descritas no cabeçalho:</p>
<pre><span style="color: #800080;"><strong>NomeLivro,ISBN13,DataPub,PreçoLivro,NumeroPaginas,IdEditora,IdAssunto</strong></span>
<span style="color: #800080;"><strong>2001 - Um Odisséia no Espaço,9788576571551,20200930,55.86,336,3,1</strong></span>
<span style="color: #800080;"><strong>Fahrenheit 451,9788525052247,20120601,43.56,216,3,1</strong></span>
<span style="color: #800080;"><strong>Admirável mundo novo,9788525056009,20140101,50.32,312,3,1</strong></span>
<span style="color: #800080;"><strong>1984,9788535914849,20090721,29.67,416,14,1</strong></span>
<span style="color: #800080;"><strong>A volta ao mundo em 80 dias,9788537816134,18730101,59.41,256,11,5</strong></span>
<span style="color: #800080;"><strong>O Nome da Rosa,9788501115829,20191216,51.99,592,18,5</strong></span>
<span style="color: #800080;"><strong>Memórias Póstumas de Brás Cubas,9788525433131,18810101,34.90,240,14,6</strong></span>
<span style="color: #800080;"><strong>O Evangelho Segundo Jesus Cristo,9788535905595,19910101,49.90,512,14,6</strong></span>
<span style="color: #800080;"><strong>Cidades Invisíveis,9788535907445,19720101,42.80,176,14,6</strong></span>
<span style="color: #800080;"><strong>Windows Server 2016: Installing &amp; Configuring,9781535074094,20160712,432.00,436,4,11</strong></span>
<span style="color: #800080;"><strong>Ensaio Sobre a Cegueira,9788571645118,19950101,39.90,312,14,6</strong></span>
<span style="color: #800080;"><strong>Ulisses,9780141184432,19220202,78.90,450,16,6</strong></span>
<span style="color: #800080;"><strong>Practical Electronics for Inventors,9781259587542,20160711,212.58,1056,9,3</strong></span>
<span style="color: #800080;"><strong>Eu Robô,9788576571667,19501202,35.00,300,3,1</strong></span>
<span style="color: #800080;"><strong>Dom Casmurro,9788525404186,19000101,19.90,256,14,6</strong></span></pre>
<p>Insira esse conteúdo em um arquivo de texto simples vazio, como um arquivo do bloco de notas no Windows, e salve com o nome de Livros.csv. Caso queira, acrescente mais livros à listagem. Não é necessário usar aspas para delimitar os dados do tipo VARCHAR ou DATE.</p>
<p>Obs.: Tome cuidado ao salvar o arquivo para não salvá-lo com a extensão <strong>.txt</strong>!!! Para evitar esse problema, selecione &#8220;<em>Todos os arquivos</em>&#8221; em &#8220;<em>Tipo</em>&#8221; na caixa de diálogo Salvar, e certifique-se de usar a codificação <strong>UTF-8</strong>, como segue:</p>
<p><img decoding="async" class="aligncenter wp-image-20026" title="Como salvar um arquivo no formato CSV no Bloco de Notas" src="https://www.bosontreinamentos.com.br/wp-content/uploads/2024/03/salvar-arquivo-csv-boson.jpg" alt="Como salvar um arquivo no formato CSV no Bloco de Notas" width="600" height="133" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2024/03/salvar-arquivo-csv-boson.jpg 780w, https://www.bosontreinamentos.com.br/wp-content/uploads/2024/03/salvar-arquivo-csv-boson-420x93.jpg 420w, https://www.bosontreinamentos.com.br/wp-content/uploads/2024/03/salvar-arquivo-csv-boson-768x170.jpg 768w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p>A seguir criaremos o arquivo de formato XML a ser usado com esse csv.</p>
<h3>Arquivo de Formato XML</h3>
<p>Um arquivo de formato é um arquivo do tipo XML (<em>e<strong>X</strong>tensible <strong>M</strong>arkup <strong>L</strong>anguage</em>) que descreve a estrutura dos dados contidos no arquivo CSV, especificando como os campos são delimitados, o comprimento máximo de cada campo e como esses campos são mapeados para as colunas da tabela do banco de dados durante o processo de importação de dados em massa..</p>
<p>O arquivo que usaremos possui o nome formato.xml. Crie-o com um editor de textos, usando o conteúdo a seguir, e salve-o no mesmo diretório do arquivo Livros.CSV:</p>
<pre class="a-b-r-La"><strong>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;BCPFORMAT xmlns="http://schemas.microsoft.com/sqlserver/2004/bulkload/format" 
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&gt;
  &lt;RECORD&gt;
    &lt;FIELD ID="1" xsi:type="CharTerm" TERMINATOR="," MAX_LENGTH="100"/&gt;
    &lt;FIELD ID="2" xsi:type="CharTerm" TERMINATOR="," MAX_LENGTH="13"/&gt;
    &lt;FIELD ID="3" xsi:type="CharTerm" TERMINATOR="," MAX_LENGTH="8"/&gt;
    &lt;FIELD ID="4" xsi:type="CharTerm" TERMINATOR="," MAX_LENGTH="19"/&gt;
    &lt;FIELD ID="5" xsi:type="CharTerm" TERMINATOR="," MAX_LENGTH="10"/&gt;
    &lt;FIELD ID="6" xsi:type="CharTerm" TERMINATOR="," MAX_LENGTH="5"/&gt;
    &lt;FIELD ID="7" xsi:type="CharTerm" TERMINATOR="\r\n" MAX_LENGTH="5"/&gt;
  &lt;/RECORD&gt;
  &lt;ROW&gt;
    &lt;COLUMN SOURCE="1" NAME="NomeLivro" xsi:type="SQLVARYCHAR"/&gt;
    &lt;COLUMN SOURCE="2" NAME="ISBN13" xsi:type="SQLVARYCHAR"/&gt;
    &lt;COLUMN SOURCE="3" NAME="DataPub" xsi:type="SQLDATE"/&gt;
    &lt;COLUMN SOURCE="4" NAME="PrecoLivro" xsi:type="SQLMONEY"/&gt;
    &lt;COLUMN SOURCE="5" NAME="NumeroPaginas" xsi:type="SQLSMALLINT"/&gt;
    &lt;COLUMN SOURCE="6" NAME="IdEditora" xsi:type="SQLSMALLINT"/&gt;
    &lt;COLUMN SOURCE="7" NAME="IdAssunto" xsi:type="SQLTINYINT"/&gt;
  &lt;/ROW&gt;
&lt;/BCPFORMAT&gt;</strong></pre>
<p>O funcionamento deste arquivo é o seguinte:</p>
<ul>
<li><strong>&lt;BCPFORMAT&gt;</strong>: Elemento raiz do arquivo XML que define o formato do arquivo de dados.</li>
<li><strong>&lt;RECORD&gt;</strong>: Define a estrutura de cada registro (linha) no arquivo CSV.</li>
<li><strong>&lt;FIELD&gt;</strong>: Define os campos (colunas) do registro. Cada tag <strong>&lt;FIELD&gt;</strong> especifica o identificador do campo (ID), o tipo de terminador que separa os campos (TERMINATOR), e o comprimento máximo (MAX_LENGTH) do campo.</li>
<li><strong>&lt;ROW&gt;</strong>: Define a correspondência entre os campos do arquivo CSV e as colunas da tabela do banco de dados.</li>
<li><strong>&lt;COLUMN&gt;</strong>: Especifica como cada campo do arquivo CSV (<em>SOURCE</em>) é mapeado para uma coluna na tabela do banco de dados (<em>NAME</em>). Além disso, define o tipo de dados da coluna (xsi:type), que pode ser:
<ul>
<li><strong>SQLVARYCHAR</strong> para strings</li>
<li><strong>SQLDATE</strong> para datas</li>
<li><strong>SQLMONEY</strong> para valores monetários</li>
<li><strong>SQLSMALLINT</strong> para números inteiros pequenos</li>
<li><strong>SQLTINYINT</strong> para números inteiros muito pequenos.</li>
</ul>
</li>
</ul>
<h3>Código SQL</h3>
<p>E a seguir temos o código SQL que deverá ser executado no SQL Server, por exemplo usando o SSMS (SQL Server Management Studio):</p>
<pre><strong>INSERT INTO Livro (NomeLivro, ISBN13, DataPub, PrecoLivro, NumeroPaginas, IdEditora, IdAssunto)</strong>
<strong>SELECT </strong>
<strong>    NomeLivro, ISBN13, DataPub, PrecoLivro, NumeroPaginas, IdEditora, IdAssunto</strong>
<strong>FROM OPENROWSET(</strong>
<strong>    BULK 'C:\SQL\Livros.CSV',</strong>
<strong>    FORMATFILE = 'C:\SQL\Formato.xml',</strong>
<strong>CODEPAGE = '65001',  -- UTF-8</strong>
<strong>FIRSTROW = 2</strong>
<strong>) AS LivrosCSV;</strong></pre>
<div>O código opera da seguinte forma:</div>
<div>
<p>1. A linha &#8220;<strong>INSERT INTO Livro (NomeLivro, ISBN13, DataPub, PrecoLivro, NumeroPaginas, IdEditora, IdAssunto)</strong>&#8221; é a declaração SQL usada para inserir os dados na tabela Livro. Serão preenchidos os campos NomeLivro, ISBN13, DataPub, PrecoLivro, NumeroPaginas, IdEditora e IdAssunto.</p>
<p>2. O comando &#8220;<strong>SELECT NomeLivro, ISBN13, DataPub, PrecoLivro, NumeroPaginas, IdEditora, IdAssunto</strong>&#8221; determina quais colunas do arquivo CSV serão selecionadas para inserção na tabela de livros.</p>
<p>3. &#8220;<strong>FROM OPENROWSET(BULK &#8216;C:\SQL\Livros.CSV&#8217;, FORMATFILE = &#8216;C:\SQL\Formato.xml&#8217;, CODEPAGE = &#8216;65001&#8217;, FIRSTROW = 2)</strong>&#8220;: Aqui, estamos usando a função OPENROWSET para abrir e ler o arquivo CSV especificado. Os parâmetros desta função são:</p>
<ul>
<li><strong>BULK &#8216;C:\SQL\Livros.CSV&#8217;</strong>: Indica o caminho do arquivo CSV que será lido (no caso o arquivo está na pasta SQL dentro da raiz do sistema).</li>
<li><strong>FORMATFILE = &#8216;C:\SQL\Formato.xml</strong>&#8216;: Especifica o arquivo de formato XML que descreve a estrutura do arquivo CSV. Este arquivo de formato é utilizado para especificar detalhes sobre o layout do arquivo CSV, como a ordem das colunas e o delimitador utilizado.</li>
<li><strong>CODEPAGE = &#8216;65001&#8217;</strong>: Define a codificação de caracteres a ser usada durante a leitura do arquivo CSV. Neste caso, o valor 65001 representa a codificação UTF-8.</li>
<li><strong>FIRSTROW = 2</strong>: Indica que a leitura do arquivo CSV começará a partir da segunda linha, de modo a ignorar o cabeçalho do arquivo CSV (que é a primeira linha).</li>
</ul>
<p>4. <strong>AS LivrosCSV;</strong>: Define um <em>alias</em> (nome de correlação) para os dados extraídos do arquivo CSV, permitindo que esses dados sejam referenciados dentro da consulta como se fossem uma tabela temporária chamada LivrosCSV. É um parâmetro obrigatório aqui.</p>
<p>Execute o comando acima no SQL Server, e, se nenhum erro for retornado, verifique a inserção dos registros com um SELECT simples:</p>
<pre><strong>SELECT * FROM Livro;</strong></pre>
</div>
<h3>Conclusão</h3>
<p>Inserir alguns poucos registros em uma tabela de banco de dados é uma tarefa simples e rápida. Porém, cadastrar muitos registros &#8211; centenas, milhares ou até mesmo milhões &#8211; pode se tornar extremamente trabalhoso e demorado, e neste caso podemos recorrer à importação em massa dos dados. Neste tutorial vimos uma forma simples de fazer isso no SQL Server: usando arquivos de texto do tipo CSV.</p>
<p>Nos próximos tutoriais veremos outras formas de importação (e também exportação) de dados em bancos de dados.</p>
<p>Prefere assistir a uma aula? Então assista ao vídeo da Bóson Treinamentos no YouTube sobre Arquivos CSV no MySQL:</p>
<p><iframe loading="lazy" title="YouTube video player" src="https://www.youtube.com/embed/5ddHcVBusQg?si=mV4STXday0y_XeLq" width="560" height="315" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p>
<h3>Colabore com a Bóson Treinamentos</h3>
<p>Ajude o canal adquirindo meus cursos na Udemy:</p>
<ul>
<li>Bancos de Dados com MySQL Básico: <a href="https://bit.ly/35QdWE4" target="_blank" rel="noopener">https://bit.ly/35QdWE4</a></li>
<li>Lógica de Programação com Português Estruturado: <a href="https://bit.ly/3QKPn22" target="_blank" rel="noopener">https://bit.ly/3QKPn22</a></li>
<li>Programação em Python do Zero: <a href="https://bit.ly/python-boson" target="_blank" rel="noopener">https://bit.ly/python-boson</a></li>
</ul>
<p>Adquira também livros e outros itens na loja da Bóson Treinamentos na Amazon e ajude o canal a se manter e crescer: <a href="https://www.amazon.com.br/shop/bosontreinamentos" target="_blank" rel="noopener">https://www.amazon.com.br/shop/bosontreinamentos</a></p>
<p>O post <a href="https://www.bosontreinamentos.com.br/sql-com-sql-server/importar-arquivo-csv-no-sql-server-para-inserir-registros-em-uma-tabela/">Importar arquivo CSV no SQL Server para inserir registros em uma tabela</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bosontreinamentos.com.br/sql-com-sql-server/importar-arquivo-csv-no-sql-server-para-inserir-registros-em-uma-tabela/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
