Usar o formato de caractere para importar ou exportar dados (SQL Server)
Formato de caractere é recomendado quando você exporta dados em massa para um arquivo de texto que será usado em outro programa ou quando você importa dados em massa de um arquivo de texto que é gerado por outro programa.
Observação |
---|
Quando você transfere dados em massa entre instâncias do Microsoft SQL Server e o arquivo de dados contém dados de caractere Unicode mas não caracteres estendidos ou DBCS, use o formato de caractere Unicode. Para obter mais informações, consulte Usar o formato de caractere Unicode para importar ou exportar dados (SQL Server). |
Formato de caractere usa o formato de dados de caractere para todas as colunas. Armazenar informações em formato de caractere é útil quando os dados são usados com outro programa, como uma planilha, ou quando os dados precisam ser copiados em uma instância de SQL Server de outro fornecedor de banco de dados como Oracle.
Considerações sobre usar o formato de caractere
Ao usar formato de caractere, considere o seguinte:
Por padrão, o utilitário bcp separa os campos dos dados de caractere com o caractere de guia e termina os registros com o caractere de nova linha. Para obter informações sobre como especificar terminadores alternativos, consulte Especificar terminadores de campo e linha (SQL Server).
Por padrão, antes da exportação ou importação em massa de dados do modo de caractere, são executadas as conversões seguintes:
Direção da operação em massa
Conversão
Exportar
Converte dados para representação de caractere. Se solicitado explicitamente, os dados são convertidos à página de código solicitada para colunas de caractere. Se nenhuma página de código for especificada, os dados de caractere serão convertidos usando a página de código OEM do computador do cliente.
Importar
Converte dados de caractere em representação nativa e traduz os dados de caractere da página de código do cliente para a página de código da(s) coluna(s) de destino, quando necessário.
Para evitar a perda de caracteres estendidos durante conversão, use formato de caractere Unicode ou especifique uma página de código.
São armazenados quaisquer dados sql_variant em um arquivo do formato de caractere sem metadados. Cada valor de dados é convertido ao formato char, de acordo com as regras de conversão de dados implícita. Quando importado em uma coluna sql_variant, os dados são importados como char. Quando importado em uma coluna com um tipo de dados diferente de sql_variant, os dados são convertidos de char usando conversão implícita. Para obter mais informações sobre conversão de dados, consulte Conversão de tipo de dados (Mecanismo de Banco de Dados).
O utilitário bcp exporta valores money como arquivos de dados do formato de caractere com quatro dígitos depois do ponto decimal e sem qualquer símbolo de agrupamento de dígito como separadores de vírgula. Por exemplo, uma coluna money que contém o valor 1,234,567.123456 é exportado em massa para um arquivo de dados como a cadeia de caracteres 1234567.1235.
Opções de comando para formato de caractere
Você pode importar dados de formato de caractere em uma tabela que usa bcp, BULK INSERT ou INSERT ... SELECT * FROM OPENROWSET(BULK...). Para um comando bcp ou uma instrução BULK INSERT, você pode especificar o formato de dados na linha de comando. Para uma instrução INSERT ... instrução SELECT * FROM OPENROWSET(BULK...); é necessário especificar o formato dos dados em um arquivo de formato.
O formato de caractere tem suporte nas seguintes opções de linha de comando:
Comando |
Opção |
Descrição |
---|---|---|
bcp |
-c |
Faz com que o utilitário bcp use os dados de caractere dos dados.1 |
BULK INSERT |
DATAFILETYPE = 'char' |
Use o formato de caractere quando na importação em massa de dados. |
1 Para carregar caractere (-c) em um formato compatível com versões anteriores de clientes do SQL Server, use a opção -V. Para obter mais informações, consulte Importar dados de formato de caractere e nativo de versões anteriores do SQL Server.
Para obter mais informações, consulte Utilitário bcp, BULK INSERT (Transact-SQL) ou OPENROWSET (Transact-SQL).
Observação |
---|
Como alternativa, você pode especificar a formatação por campo, em um arquivo de formato. Para obter mais informações, consulte Arquivos de formato para importação ou exportação de dados (SQL Server). |
Exemplos
Os exemplos a seguir demonstram como exportar dados de caracteres em massa usando bcp e importar os mesmos dados em massa usando BULK INSERT.
Tabela de exemplo
Os exemplos requerem que uma tabela denominada myTestCharData seja criada no banco de dados de exemplo AdventureWorks no esquema dbo. Antes de executar os exemplos, é necessário criar essa tabela. Para criar essa tabela, no Editor de Consultas do SQLSQL Server Management Studio, execute:
USE AdventureWorks;
GO
CREATE TABLE myTestCharData (
Col1 smallint,
Col2 nvarchar(50),
Col3 nvarchar(50)
);
Para preencher esta tabela e exibir o conteúdo resultante, execute as seguintes instruções:
INSERT INTO myTestCharData(Col1,Col2,Col3)
VALUES(1,'DataField2','DataField3');
INSERT INTO myTestCharData(Col1,Col2,Col3)
VALUES(2,'DataField2','DataField3');
GO
SELECT Col1,Col2,Col3 FROM myTestCharData
Usando o bcp para exportar em massa dados de caractere
Para exportar dados da tabela para o arquivo de dados, use bcp com a opção out e os seguintes qualificadores:
Qualificadores |
Descrição |
||
---|---|---|---|
-c |
Especifica o formato do caractere. |
||
-t , |
Especifica uma vírgula (,) como terminador de campo.
|
||
-T |
Especifica que o utilitário bcp se conecta ao SQL Server com uma conexão confiável usando segurança integrada. Se -T não for especificado, especifique -U e -P para o logon ser efetuado com êxito. |
O exemplo seguinte exporta em massa dados em formato de caractere da tabela myTestCharData em um arquivo de dados novo nomeado arquivo de dados myTestCharData-c.Dat que usa a vírgula (,) como terminador de campo. No prompt de comando do Microsoft Windows, digite:
bcp AdventureWorks..myTestCharData out C:\myTestCharData-c.Dat -c -t, -T
Usando BULK INSERT para importar dados de caractere em massa
Os exemplos a seguir usam BULK INSERT para importar os dados no arquivo de dados myTestCharData-c.Dat na tabela myTestCharData. No Editor de Consultas do SQL Server Management Studio, execute:
USE AdventureWorks;
GO
BULK INSERT myTestCharData
FROM 'C:\myTestCharData-c.Dat'
WITH (
DATAFILETYPE='char',
FIELDTERMINATOR=','
);
GO
SELECT Col1,Col2,Col3 FROM myTestCharData;
GO
Tarefas relacionadas
Para usar formatos de dados para importação ou exportação em massa
Importar dados de formato de caractere e nativo de versões anteriores do SQL Server
Usar o formato nativo para importar ou exportar dados (SQL Server)
Usar o formato de caractere Unicode para importar ou exportar dados (SQL Server)
Usar o formato nativo Unicode para importar ou exportar dados (SQL Server)
Consulte também
Referência
Conceitos
Importar dados de formato de caractere e nativo de versões anteriores do SQL Server