quinta-feira, 29 de setembro de 2011

Evitar erro ao dar OPENROWSET em XML com acentuação (SQL Server)

Para não ocorrer erro carregar um arquivo XML via OPENROWSET, quando o XML possui acentuação (Illegal Characters / Illegal Characters), basta adicionar o encoding na primeira linha do XML:

<?xml version="1.0" encoding = "ISO-8859-1" ?>





Bulk Insert e BCP / Queryout sem perder acentuação (SQL Server)

Para não perder a acentuação das palavras ao carregar um TXT via BULK INSERT ou ao exportar uma tabela via QUERYOUT, é necessário definir a CODEPAGE/COLLATION.

É simples:

BULK INSERT - Exemplo:
set @cmd = 'bulk insert TABELA from
''' + @FileName + ''' WITH (CODEPAGE = 1252)'
exec(@cmd)


BCP/QUERYOUT - Exemplo:


set @cmd = 'bcp "SELECT * FROM ##atu_conf" queryout ' + @FileName + ' -T -c -C1252 -t, '
EXEC xp_cmdshell @cmd