o peregrino_ remover caracteres especiais em campos do sql server
Post on 27-Nov-2015
616 Views
Preview:
TRANSCRIPT
27/11/13 O Peregrino: Remover caracteres especiais em campos do SQL Server
emersonhermann.blogspot.com.br/2011/07/remover-caracteres-especiais-em-campos.html 1/5
DBA, DB2, MySql, Oracle, Postgres, SQL Server, TI, etc.
O Peregrino
segunda-feira, 4 de julho de 2011
Remover caracteres especiais em campos do SQLServer
Function scalar no SQL SERVER para remover
caracteres especiais, exatamente 33 caracteres de
controle (especiais) menos o NULL ficando 32 ao
todo, recomendo usar essa store function, (store
procedure) em procedimentos de ETL, migração de
dados ou em consultas que precisem remover esses
tais caracteres da tabela ASCII.
Fica aqui o compartilhamento do conhecimento.
Abraços.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
---- Nome Artefato/Programa..: sp_rm_special_chars.sql-- Autor(es)...............: Emerson Hermann (emersonhermann at gmail.com) O Peregrino (-- Data Inicio ............: 04/07/2011-- Data Atual..............: 04/07/2011-- Versao..................: 0.01-- Compilador/Interpretador: T-SQL (Transact SQL) -- Sistemas Operacionais...: Windows-- SGBD....................: MS SQL Server 2008-- Kernel..................: Nao informado!-- Finalidade..............: store procedure (function) para remocao de caracteres especiais do ASCII (33) caracteres nao imprimiveis -- OBS.....................: Remover "caracteres especiais" em campos do SQL Server-- IF EXISTS( SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[sp_rm_special_chars]') AND type IN (N'FN')) DROP FUNCTION sp_rm_special_charsGO CREATE FUNCTION sp_rm_special_chars (@stexto varchar(max))RETURNS varchar(max)ASBEGIN IF @stexto IS NULL BEGIN RETURN NULL END -- Tabela ASCII -- Caracteres não imprimiveis, 33 ao total, menos o NUL fica 32 -- hex d abr ctl descricao -- 00 0 NUL ̂@ Null - Nulo desativado, pois o nulo no postgres funciona em forma de cascata SET @stexto = (SELECT REPLACE(@stexto, CHAR(1),'')) -- 01 1 SOH ̂A Start of Header - Início do cabeçalho SET @stexto = (SELECT REPLACE(@stexto, CHAR(2),'')) -- 02 2 STX ̂B Start of Text - Início do texto SET @stexto = (SELECT REPLACE(@stexto, CHAR(3),'')) SET @stexto = (SELECT REPLACE(@stexto, CHAR(4),'')) SET @stexto = (SELECT REPLACE(@stexto, CHAR(5),'')) SET @stexto = (SELECT REPLACE(@stexto, CHAR(6),'')) SET @stexto = (SELECT REPLACE(@stexto, CHAR(7),'')) -- 07 7 BEL ̂G Bell - Campainha SET @stexto = (SELECT REPLACE(@stexto, CHAR(8),'')) SET @stexto = (SELECT REPLACE(@stexto, CHAR(9),'')) -- 09 9 HT ̂I Horizontal Tabulation - Tabulação horizontal SET @stexto = (SELECT REPLACE(@stexto, CHAR(10),'')) -- 0A 10 LF ̂J Line-Feed - Alimenta linha SET @stexto = (SELECT REPLACE(@stexto, CHAR(11),'')) -- 0B 11 VT ̂K Vertical Tabulation - Tabulação vertical SET @stexto = (SELECT REPLACE(@stexto, CHAR(12),'')) -- 0C 12 FF ̂L Form-Feed - Alimenta formulário SET @stexto = (SELECT REPLACE(@stexto, CHAR(13),'')) -- 13 19 DC3 ̂S Device-Control 3 SET @stexto = (SELECT REPLACE(@stexto, CHAR(14),'')) SET @stexto = (SELECT REPLACE(@stexto, CHAR(15),'')) SET @stexto = (SELECT REPLACE(@stexto, CHAR(16),'')) SET @stexto = (SELECT REPLACE(@stexto, CHAR(17),'')) SET @stexto = (SELECT REPLACE(@stexto, CHAR(18),'')) SET @stexto = (SELECT REPLACE(@stexto, CHAR(19),''))
Domínio comHospedagemUOLHOST.com.br/registro-de-d…
Compre 1 Domínio e ganhe30 dias de HospedagemStart, confira agora.
2
Removercaracteresespeciais emcampos do SQLServer
Function scalar no SQLSERVER para removercaracteres especiais,exatamente 33 caracteres decontrole (especiais) menos oNULL ficando ...
Removercaracteresespeciais emcampos do SQLServer
Function scalar no SQLSERVER para removercaracteres especiais,exatamente 33 caracteres decontrole (especiais) menos oNULL ficando...
Configurando ReplicaçãoNativa do Postgres 9.0 noSlackware 13.0
Uma das grandes vantagensno Postgres 9.0 é a replicaçãonativa, assíncrona, baseadano log de transação (WAL-LOG), usando Hot Standby eSt...
Full Text Search, BuscaTextual no PostgreSQL
Adaptei umaapresentação(slides) que fizsobre FTS no PG ... Full TextSearch no PostgreSQL (FTS)Teoria, Utilização,Possibilidades e Ap...
Remover Letras em campos
Postagens populares
mais Próximo blog» Criar um blog Login
?
27/11/13 O Peregrino: Remover caracteres especiais em campos do SQL Server
emersonhermann.blogspot.com.br/2011/07/remover-caracteres-especiais-em-campos.html 2/5
Postado por O Peregrino às 18:30
Marcadores: SQL Server
545556575859606162636465666768697071727374757677
SET @stexto = (SELECT REPLACE(@stexto, CHAR(19),'')) SET @stexto = (SELECT REPLACE(@stexto, CHAR(20),'')) SET @stexto = (SELECT REPLACE(@stexto, CHAR(21),'')) SET @stexto = (SELECT REPLACE(@stexto, CHAR(22),'')) SET @stexto = (SELECT REPLACE(@stexto, CHAR(23),'')) SET @stexto = (SELECT REPLACE(@stexto, CHAR(24),'')) -- 18 24 CAN ̂X Cancel SET @stexto = (SELECT REPLACE(@stexto, CHAR(25),'')) SET @stexto = (SELECT REPLACE(@stexto, CHAR(26),'')) SET @stexto = (SELECT REPLACE(@stexto, CHAR(27),'')) -- 1B 27 ESC ̂[ Escape SET @stexto = (SELECT REPLACE(@stexto, CHAR(28),'')) SET @stexto = (SELECT REPLACE(@stexto, CHAR(29),'')) SET @stexto = (SELECT REPLACE(@stexto, CHAR(30),'')) SET @stexto = (SELECT REPLACE(@stexto, CHAR(31),'')) SET @stexto = (SELECT REPLACE(@stexto, CHAR(127),'')) -- 7F127 DEL ̂? Delete RETURN @stexto ENDGO -- Exemplo de uso: -- SELECT texto = dbo.sp_rm_special_chars ('legal e bom'), getdate() as data; -- 'legal e bom' -- SELECT texto = dbo.sp_rm_special_chars ('NULL'), getdate() as data; -- 'NULL'-- SELECT texto = dbo.sp_rm_special_chars (NULL), getdate() as data; -- NULL
Recomende isto no Google
Respostas
Responder
Respostas
5 comentários:
Anônimo 28 de dezembro de 2012 08:47
COLLATE sql_latin1_general_cp1251_ci_as
Responder
O Peregrino 21 de outubro de 2013 14:12
Também é uma opção interessante, mudando o collation para remover
caracteres especiais, mas prefiro a function com replace, pois não é
necessário parar o bd, apesar de não ter muita performance, a intenção
deste artigo é dar opções e não ser a solução definitiva, entrentanto caso
queira mudar o collation tem um passo a passo nesse artigo também de
minha autoria: http://emersonhermann.blogspot.com.br/2012/04/como-
alterar-o-collation-de-um-bd-no.html
Seja Feliz!
leandromd 25 de outubro de 2013 14:18
Olá.
O que acham da solução no link abaixo?
http://www.devmedia.com.br/eliminando-caracteres-especiais-de-strings-no-sql-
server-collate/25286
Responder
O Peregrino 25 de outubro de 2013 15:14
Olá leandromd,
Interessante o artigo descrito, vejo como mais uma forma de se chegar
ao mesmo resultado, porém ainda prefiro a técnica de substituir apenas
os 32 caracteres especiais da tabela ASCII (descrita aqui
http://emersonhermann.blogspot.com.br/2011/07/remover-caracteres-
do SQL Server
Remover Letrasem campos doSQL Server Vezpor outra,
precisamos de fazer uso decampos concatenados comnúmeros e strings e em alguns...
Como alterar oCOLLATION deum BD no SQLServer 2005 ou2008
Esse artigo se propõe aensinar como alterar oscollations de todos os bancosde dados de uma instanciaSQL Server 2005/2008,inclusive tabe...
Como ValidarCódigo de BarrasGTIN, antigoEAN13 no SQLSERVER 2008
Como Validar Código deBarras GTIN, antigo EAN13 noSQL SERVER 2008 Com asexigências da SEFAZ, notocante a Nota FiscalEletrônica, torn...
Remover acentosem SQL SERVER2005 / 2008 /2012
APDSJ! Função(store function) para removeracentos em SQL Server 2005,SQL Server 2008 e SQLServer 2012. Funciona paramaiúsculas e...
A Bíblia do DBA
Neste artigo, ireidescrever comoinstalar econfigurar um
base de dados, partindo doponto de que o banco, serviço,já estão instalados....
Consulta SQL dePlano de Contas- Query Contabil -Query paraCentro de Custo
A idéia primordial desse artigoé demonstrar comodesenvolver uma query sqlusando um plano de contas oucentro de custo, o principio é o...
Siga-me por Email
Email address... Submit
Translate
27/11/13 O Peregrino: Remover caracteres especiais em campos do SQL Server
emersonhermann.blogspot.com.br/2011/07/remover-caracteres-especiais-em-campos.html 3/5
Postagem mais recente Postagem mais antigaInício
Assinar: Postar comentários (Atom)
Responder
Digite seu comentário...
Comentar como: Conta do Google
Publicar
Visualizar
especiais-em-campos.html).
Seguem os motivos:
1) Não remove os caracteres acentuados e nem altera a caixa baixa ou
alta das letras.
2) Não modifica cedilha por C.
3) Em bases com textos internacionalizados, não irá ter nenhuma
mudança.
4) Apenas remove os 32 caracteres especiais.
5) Eu sei o que está sendo removido (32 caracteres especiais), como
DBA detesto não saber o que está sendo alterado nos meus BDs.
6) Não altera nada na base apenas remove 32 caracteres especiais da
tabela ASCII, nada mais.
7) Já usei em produção com sucesso.
Espero ter ajudado.
Seja feliz! :)
O Peregrino 25 de outubro de 2013 15:29
Mais uma leandromd, complementando ...
A solução proposta no link elimina caracteres especiais e não especiais
em SQL Server, para os meus problemas do dia a dia não atende.
A verdade dói, mas tem que ser dita. :)
Vai fundo!!!
Selecione o idioma
Pow ered by Tradutor
Total de visualizações depágina
4 2 6 2 7
Pesquisar
Pesquisar este blog
Inscrever-se
Postagens
Comentários
Participar deste siteGoogle Friend Connect
Membros (12)
Já é um membro? Fazer login
Seguidores
SQL Server (23)
Postgres (18)
Oracle (5)
SQL (5)
Algoritmos (4)
MySql (1)
Outros (1)
Categorias
► 2013 (3)
► 2012 (14)
▼ 2011 (25)
► Dezembro (1)
► Novembro (4)
Arquivo do blog
27/11/13 O Peregrino: Remover caracteres especiais em campos do SQL Server
emersonhermann.blogspot.com.br/2011/07/remover-caracteres-especiais-em-campos.html 4/5
► Agosto (5)
▼ Julho (4)
Remover Letrasem campos doSQL Server
Full Text Search,Busca Textualno PostgreSQL
Removercaracteresespeciais emcampos do SQLServ...
Removercaracteresespeciais emcampos do SQLServ...
► Junho (3)
► Maio (1)
► Abril (2)
► Fevereiro (3)
► Janeiro (2)
► 2010 (6)
O Peregrino
Apenas umPeregrino, umpai de familiaque tenta
ganhar o pão de cada diacomo profissional de TI,trabalhou como DBA naFUNPEC instituição vinculadaa UFRN (www.ufrn.br), comocontratado, já trabalhou naFICAMP (www.ficamp.com.br),Peggasus(www.peggasus.com.br), eagora está na CHB(www.chbcredito.com.br) comoAnalista de Sistemas, ministraaulas de BD na IT Cursos(www.itcursos.com.br), etambém presta consultoria embanco de dados. Na BíbliaSagrada, Hebreus 13:14 relataa minha situação.
Visualizar meu perfil completo
Quem sou eu
Minha lista de blogs
Certificação BD[Treinamento] Oracle
Trainning On Demand
Há uma semana
Oracle BlogPesquisando uma palavra ou
texto em um schema do
banco de dados Oracle
27/11/13 O Peregrino: Remover caracteres especiais em campos do SQL Server
emersonhermann.blogspot.com.br/2011/07/remover-caracteres-especiais-em-campos.html 5/5
Há 3 semanas
Diário de um DBADe mudança…
Há 3 semanas
Meu Blog dePostgreSQL!!!Nada a temer com Lateral
Joins no PostgreSQL 9.3!
Há 2 meses
Kenia Milene G.'s BlogA Parte Que Te Cabe Nesse
Latifúndio
Há 2 meses
Agajorte: Java, Linux eGastronomiaTV Serpro - Conectado:
banco de dados espaciais
PostGIS
Há 2 meses
Euler TaveiraO que esperar da versão 9.3
Há 2 meses
-*- GeoMartins -*-O .bind() salvou dia!
Há um ano
MyTraceLog - Registrode um DBAInstalando novo HD SATA
no CentOS 5.6
Há um ano
Blog do BrunoMurassakiGUOB TECH DAY 2011
Há 2 anos
DBA de SaiaI'm Back...
Há 3 anos
www.profissionaloracle.com.br/gpo/
Modelo Awesome Inc.. Tecnologia do Blogger.
top related