Usuário com melhor resposta
Problema com BULK INSERT

Pergunta
-
E aê pessoal, beleza?
Estou fazendo uma inserção no meu banco de dados uma relação de nomes de lojas e telefone, o código funciona perfeitamente, só que ao consultar os dados percebi que nomes com carecteres como "ç" e "~" ficam com um caractere desconhecido. Tentei colocar como tipo nvarchar mas o problema persiste. Alguém sabe me dizer se isso é normal?
Respostas
-
-
Só tome cuidado com uma coisa, em relação aos tipos nchar e nvarchar: eles ocupam o dobro do tamanho de char e varchar. Isso pode ser indesejado.
Verifique o Collate que está sendo utilizado. Se puder trocar, provavelmente resolverá. E poderá continuar usando varchar.
Roberson Ferreira - Database Developer
Acesse: www.robersonferreira.com.br
Email: contato@robersonferreira.com.brSe esta sugestão for útil, por favor, classifique-a como útil.
Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.- Marcado como Resposta LWMN terça-feira, 27 de setembro de 2011 22:29
Todas as Respostas
-
-
Só tome cuidado com uma coisa, em relação aos tipos nchar e nvarchar: eles ocupam o dobro do tamanho de char e varchar. Isso pode ser indesejado.
Verifique o Collate que está sendo utilizado. Se puder trocar, provavelmente resolverá. E poderá continuar usando varchar.
Roberson Ferreira - Database Developer
Acesse: www.robersonferreira.com.br
Email: contato@robersonferreira.com.brSe esta sugestão for útil, por favor, classifique-a como útil.
Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.- Marcado como Resposta LWMN terça-feira, 27 de setembro de 2011 22:29
-
-
-
Pessoal, o meu problema persiste, o código que estou usando é o seguinte!
USE tempdb;
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('dbo.TABELA', 'U') IS NOT NULL
DROP TABLE dbo.TABELA
GO
CREATE TABLE dbo.TABELA
(
INSC nchar(9) NULL,
NOME nvarchar(100) NULL
)
GO
BULK INSERT dbo.Tabela FROM 'Z:\LISTA.TXT'
WITH
(
FIELDTERMINATOR='\t',
ROWTERMINATOR='\n'
)
SELECT INSC, NOME FROM dbo.TABELA;Os dados do arquivo estão assim:
0046-7 ABDON
0141-5 ABINAIR
0163-8 ABRAÃO
0122-3 GONÇALVESNa consulta não sai conforme está no arquivo, os acentos e ç saem com um caractere estranho.
Agradeço desde já!
-
Chegou a mudar o collate da coluna nome? Coloque nela o CP850_CI_AI.
Roberson Ferreira - Database Developer
Acesse: www.robersonferreira.com.br
Email: contato@robersonferreira.com.brSe esta sugestão for útil, por favor, classifique-a como útil.
Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta. -
-
Isso mesmo. E aí você pode deixar a coluna como VarChar(100), em vez de NVarChar(100).
Agora, se você já mudou o collate da base de dados, não precisa explicitar o collate na criação da tabela/coluna, pois as novas tabelas/colunas herdarão o collate da base.
Dê uma olhada no seguinte artigo: http://robersonferreira.com.br/alterandocollate/
Roberson Ferreira - Database Developer
Acesse: www.robersonferreira.com.br
Email: contato@robersonferreira.com.brSe esta sugestão for útil, por favor, classifique-a como útil.
Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta. -
-
O que exatamente você fez? Alterou o collate da coluna ou do banco?
Roberson Ferreira - Database Developer
Acesse: www.robersonferreira.com.br
Email: contato@robersonferreira.com.brSe esta sugestão for útil, por favor, classifique-a como útil.
Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.