Você está na página 1de 5

27/11/13

O Peregrino: Remover caracteres especiais em campos do SQL Server

mais

Prximo blog

Criar um blog

Login

O Peregrino
DBA, DB2, MySql, Oracle, Postgres, SQL Server, TI, etc. segunda-feira, 4 de julho de 2011

Remover caracteres especiais em campos do SQL Server


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, migrao de dados ou em consultas que precisem remover esses tais caracteres da tabela ASCII. Fica aqui o compartilhamento do conhecimento. Abraos.

Domnio com Hospedagem


UOLHOST.com.br/registro-de-d

Compre 1 Domnio e ganhe 30 dias de Hospedagem Start, confira agora.

? 1 2 -N o m eA r t e f a t o / P r o g r a m a . . :s p _ r m _ s p e c i a l _ c h a r s . s q l 3 -A u t o r ( e s ) . . . . . . . . . . . . . . . :E m e r s o nH e r m a n n( e m e r s o n h e r m a n na tg m a i l . c o m ) OP e r e g r i n o ( Remover caracteres 4 -D a t aI n i c i o. . . . . . . . . . . . :0 4 / 0 7 / 2 0 1 1 especiais em 5 -D a t aA t u a l . . . . . . . . . . . . . . :0 4 / 0 7 / 2 0 1 1 6 -V e r s a o . . . . . . . . . . . . . . . . . . :0 . 0 1 campos do SQL 7 -C o m p i l a d o r / I n t e r p r e t a d o r :T S Q L( T r a n s a c tS Q L ) Server 8 -S i s t e m a sO p e r a c i o n a i s . . . :W i n d o w s Function scalar no SQL 9 -S G B D . . . . . . . . . . . . . . . . . . . . :M SS Q LS e r v e r2 0 0 8 SERVER para remover 1 0 -K e r n e l . . . . . . . . . . . . . . . . . . :N a oi n f o r m a d o ! caracteres especiais, 1 1 -F i n a l i d a d e . . . . . . . . . . . . . . :s t o r ep r o c e d u r e( f u n c t i o n )p a r ar e m o c a od ec a r a c t e r e se s p e c i a i sd oA S C I I( 3 3 )c a r a c t e r e s exatamente 33 caracteres de 1 2 -O B S . . . . . . . . . . . . . . . . . . . . . :R e m o v e r" c a r a c t e r e se s p e c i a i s "e mc a m p o sd oS Q LS e r v e r 1 3 controle (especiais) menos o 1 4 NULL ficando ... 1 5 I FE X I S T S 1 6 ( Remover 1 7 S E L E C T* caracteres 1 8 F R O Ms y s . o b j e c t s especiais em 1 9 W H E R Eo b j e c t _ i d=O B J E C T _ I D ( N ' [ d b o ] . [ s p _ r m _ s p e c i a l _ c h a r s ] ' ) campos do SQL 2 0 A N Dt y p eI N( N ' F N ' ) 2 1 ) Server 2 2 D R O PF U N C T I O Ns p _ r m _ s p e c i a l _ c h a r s Function scalar no SQL 2 3 G O SERVER para remover 2 4 caracteres especiais, 2 5 C R E A T EF U N C T I O Ns p _ r m _ s p e c i a l _ c h a r s( @ s t e x t ov a r c h a r ( m a x ) ) exatamente 33 caracteres de 2 6 R E T U R N Sv a r c h a r ( m a x ) 2 7 A S controle (especiais) menos o 2 8 B E G I N NULL ficando... 2 9 I F@ s t e x t oI SN U L LB E G I N 3 0 R E T U R NN U L L Configurando Replicao 3 1 E N D Nativa do Postgres 9.0 no 3 2 -T a b e l aA S C I I Slackware 13.0 3 3 -C a r a c t e r e sn oi m p r i m i v e i s ,3 3a ot o t a l ,m e n o soN U Lf i c a3 2 3 4 - h e xda b rc t ld e s c r i c a o Uma das grandes vantagens 3 5 - 0 0 0N U L^ @N u l l-N u l od e s a t i v a d o ,p o i son u l on op o s t g r e sf u n c i o n ae mf o r m ad ec a s c a t a no Postgres 9.0 a replicao 3 6 S E T@ s t e x t o=( S E L E C TR E P L A C E ( @ s t e x t o ,C H A R ( 1 ) , ' ' ) ) - 0 1 1S O H^ AS t a r to f H e a d e r -I n c i od oc a b e a l h o nativa, assncrona, baseada 3 7 S E T@ s t e x t o=( S E L E C TR E P L A C E ( @ s t e x t o ,C H A R ( 2 ) , ' ' ) ) - 0 2 2S T X^ BS t a r to f T e x tde -I n c i od ot e x t o no log transao (WAL3 8 S E T@ s t e x t o=( S E L E C TR E P L A C E ( @ s t e x t o ,C H A R ( 3 ) , ' ' ) ) LOG), usando Hot Standby e 3 9 S E T@ s t e x t o=( S E L E C TR E P L A C E ( @ s t e x t o ,C H A R ( 4 ) , ' ' ) ) St... 4 0 S E T@ s t e x t o=( S E L E C TR E P L A C E ( @ s t e x t o ,C H A R ( 5 ) , ' ' ) ) 4 1 S E T@ s t e x t o=( S E L E C TR E P L A C E ( @ s t e x t o ,C H A R ( 6 ) , ' ' ) ) Full Text Search, Busca 4 2 S E T@ s t e x t o=( S E L E C TR E P L A C E ( @ s t e x t o ,C H A R ( 7 ) , ' ' ) ) - 0 7 7B E L^ GB e l l-C a m p a i n h a 4 3 S E T@ s t e x t o=( S E L E C TR E P L A C E ( @ s t e x t o ,C H A R ( 8 ) , ' ' ) ) Textual no PostgreSQL 4 4 S E T@ s t e x t o=( S E L E C TR E P L A C E ( @ s t e x t o ,C H A R ( 9 ) , ' ' ) ) - 0 9 9H T ^ I H o r i z o n t a lT a b u l a t i o n-T a b u l a oh o r i z o n t a l Adaptei uma 4 5 S E T@ s t e x t o=( S E L E C TR E P L A C E ( @ s t e x t o ,C H A R ( 1 0 ) , ' ' ) )- 0 A1 0L F ^ JL i n e F e e d-A l i m e n t al i n h a apresentao(slides) que fiz 4 6 S E T@ s t e x t o=( S E L E C TR E P L A C E ( @ s t e x t o ,C H A R ( 1 1 ) , ' ' ) )- 0 B1 1V T ^ K V e r t i c a lT a b u l a t i o n-T a b u l a ov e r t i c a l sobre FTS no ... Full Text 4 7 S E T@ s t e x t o=( S E L E C TR E P L A C E ( @ s t e x t o ,C H A R ( 1 2 ) , ' ' ) )- 0 C1 2F F ^ LF o r m F e e d-A l i m e n t aPG f o r m u l r i o Search 4 8 S E T@ s t e x t o=( S E L E C TR E P L A C E ( @ s t e x t o ,C H A R ( 1 3 ) , ' ' ) )- 1 31 9D C 3^ SD e v i c e C o n t r o lno 3 PostgreSQL (FTS) 4 9 S E T@ s t e x t o=( S E L E C TR E P L A C E ( @ s t e x t o ,C H A R ( 1 4 ) , ' ' ) ) Teoria, Utilizao, 5 0 S E T@ s t e x t o=( S E L E C TR E P L A C E ( @ s t e x t o ,C H A R ( 1 5 ) , ' ' ) ) Possibilidades e Ap... 5 1 S E T@ s t e x t o=( S E L E C TR E P L A C E ( @ s t e x t o ,C H A R ( 1 6 ) , ' ' ) ) 5 2 S E T@ s t e x t o=( S E L E C TR E P L A C E ( @ s t e x t o ,C H A R ( 1 7 ) , ' ' ) ) Remover Letras em campos 5 3 S E T@ s t e x t o=( S E L E C TR E P L A C E ( @ s t e x t o ,C H A R ( 1 8 ) , ' ' ) ) 5 4 S E T@ s t e x t o=( S E L E C TR E P L A C E ( @ s t e x t o ,C H A R ( 1 9 ) , ' ' ) ) emersonhermann.blogspot.com.br/2011/07/remover-caracteres-especiais-em-campos.html 1/5

Postagens populares

27/11/13

5 4 5 5 5 6 5 7 5 8 5 9 6 0 6 1 6 2 6 3 6 4 6 5 6 6 6 7 6 8 6 9 7 0 7 1 7 2 7 3 7 4 7 5 7 6 7 7

O Peregrino: Remover caracteres especiais em campos do SQL Server S E T@ s t e x t o=( S E L E C TR E P L A C E ( @ s t e x t o ,C H A R ( 1 9 ) , ' ' ) ) do SQL Server S E T@ s t e x t o=( S E L E C TR E P L A C E ( @ s t e x t o ,C H A R ( 2 0 ) , ' ' ) ) Remover Letras S E T@ s t e x t o=( S E L E C TR E P L A C E ( @ s t e x t o ,C H A R ( 2 1 ) , ' ' ) ) S E T@ s t e x t o=( S E L E C TR E P L A C E ( @ s t e x t o ,C H A R ( 2 2 ) , ' ' ) ) em campos do S E T@ s t e x t o=( S E L E C TR E P L A C E ( @ s t e x t o ,C H A R ( 2 3 ) , ' ' ) ) SQL Server Vez S E T@ s t e x t o=( S E L E C TR E P L A C E ( @ s t e x t o ,C H A R ( 2 4 ) , ' ' ) )-1 82 4C A N^ XC a n c e l por outra, S E T@ s t e x t o=( S E L E C TR E P L A C E ( @ s t e x t o ,C H A R ( 2 5 ) , ' ' ) ) precisamos de fazer uso de S E T@ s t e x t o=( S E L E C TR E P L A C E ( @ s t e x t o ,C H A R ( 2 6 ) , ' ' ) ) S E T@ s t e x t o=( S E L E C TR E P L A C E ( @ s t e x t o ,C H A R ( 2 7 ) , ' ' ) )-1 B2 7E S C^ [E s c a p e campos concatenados com nmeros e strings e em alguns S E T@ s t e x t o=( S E L E C TR E P L A C E ( @ s t e x t o ,C H A R ( 2 8 ) , ' ' ) ) ... S E T@ s t e x t o=( S E L E C TR E P L A C E ( @ s t e x t o ,C H A R ( 2 9 ) , ' ' ) ) S E T@ s t e x t o=( S E L E C TR E P L A C E ( @ s t e x t o ,C H A R ( 3 0 ) , ' ' ) ) S E T@ s t e x t o=( S E L E C TR E P L A C E ( @ s t e x t o ,C H A R ( 3 1 ) , ' ' ) ) Como alterar o S E T@ s t e x t o=( S E L E C TR E P L A C E ( @ s t e x t o ,C H A R ( 1 2 7 ) , ' ' ) )-7 F 1 2 7D E L^ ? D e l e t e COLLATION de

um BD no SQL Server 2005 ou 2008 Esse artigo se prope a -E x e m p l od eu s o : ensinar como alterar os collations de todos os bancos -S E L E C Tt e x t o=d b o . s p _ r m _ s p e c i a l _ c h a r s( ' l e g a leb o m ' ) ,g e t d a t e ( )a sd a t a ; -' l e g a leb o m ' de dados de uma instancia -S E L E C Tt e x t o=d b o . s p _ r m _ s p e c i a l _ c h a r s( ' N U L L ' ) ,g e t d a t e ( )a sd a t a ; -' N U L L ' SQL Server 2005/2008, -S E L E C Tt e x t o=d b o . s p _ r m _ s p e c i a l _ c h a r s( N U L L ) ,g e t d a t e ( )a sd a t a ; -N U L L inclusive tabe...
R E T U R N@ s t e x t o E N D G O

Postado por O Peregrino s 18:30


Recomende isto no Google

Marcadores: SQL Server

5 comentrios:
Annimo 28 de dezembro de 2012 08:47 COLLATE sql_latin1_general_cp1251_ci_as Responder Respostas O Peregrino 21 de outubro de 2013 14:12

Como Validar Cdigo de Barras GTIN, antigo EAN13 no SQL SERVER 2008 Como Validar Cdigo de Barras GTIN, antigo EAN13 no SQL SERVER 2008 Com as exigncias da SEFAZ, no tocante a Nota Fiscal Eletrnica, torn... Remover acentos em SQL SERVER 2005 / 2008 / 2012 APDSJ! Funo (store function) para remover acentos em SQL Server 2005, SQL Server 2008 e SQL Server 2012. Funciona para maisculas e... A Bblia do DBA Neste artigo, irei descrever como instalar e configurar um base de dados, partindo do ponto de que o banco, servio, j esto instalados.... Consulta SQL de Plano de Contas - Query Contabil Query para Centro de Custo A idia primordial desse artigo demonstrar como desenvolver uma query sql usando um plano de contas ou centro de custo, o principio o ...

Tambm uma opo interessante, mudando o collation para remover caracteres especiais, mas prefiro a function com replace, pois no necessrio parar o bd, apesar de no ter muita performance, a inteno deste artigo dar opes e no ser a soluo definitiva, entrentanto caso queira mudar o collation tem um passo a passo nesse artigo tambm de minha autoria: http://emersonhermann.blogspot.com.br/2012/04/comoalterar-o-collation-de-um-bd-no.html Seja Feliz! Responder

leandromd 25 de outubro de 2013 14:18 Ol. O que acham da soluo no link abaixo? http://www.devmedia.com.br/eliminando-caracteres-especiais-de-strings-no-sqlserver-collate/25286 Responder Respostas O Peregrino Ol leandromd, 25 de outubro de 2013 15:14

Siga-me por Email


Email address... Submit

Interessante o artigo descrito, vejo como mais uma forma de se chegar ao mesmo resultado, porm ainda prefiro a tcnica de substituir apenas os 32 caracteres especiais da tabela ASCII (descrita aqui http://emersonhermann.blogspot.com.br/2011/07/remover-caracteresemersonhermann.blogspot.com.br/2011/07/remover-caracteres-especiais-em-campos.html

Translate
2/5

27/11/13

O Peregrino: Remover caracteres especiais em campos do SQL Server

especiais-em-campos.html). Seguem os motivos: 1) No remove os caracteres acentuados e nem altera a caixa baixa ou alta das letras. 2) No modifica cedilha por C. 3) Em bases com textos internacionalizados, no ir ter nenhuma mudana. 4) Apenas remove os 32 caracteres especiais. 5) Eu sei o que est sendo removido (32 caracteres especiais), como DBA detesto no saber o que est sendo alterado nos meus BDs. 6) No altera nada na base apenas remove 32 caracteres especiais da tabela ASCII, nada mais. 7) J usei em produo com sucesso. Espero ter ajudado. Seja feliz! :)

Selecione o idioma
Pow ered by

Tradutor

Total de visualizaes de pgina

4 2 6 2 7
Pesquisar este blog
Pesquisar

Inscrever-se
O Peregrino 25 de outubro de 2013 15:29 Mais uma leandromd, complementando ... A soluo proposta no link elimina caracteres especiais e no especiais em SQL Server, para os meus problemas do dia a dia no atende. A verdade di, mas tem que ser dita. :) Vai fundo!!! Responder

Postagens Comentrios

Seguidores
Participar deste site
Google Friend Connect

Membros (12)

Digite seu comentrio...

J um membro? Fazer login

Comentar como:

Conta do Google

Categorias
Publicar Visualizar

SQL Server (23) Postgres (18) Oracle (5) SQL (5) Algoritmos (4)

Postagem mais recente

Incio

Postagem mais antiga

MySql (1) Outros (1)

Assinar: Postar comentrios (Atom)

Arquivo do blog 2013 (3) 2012 (14) 2011 (25) Dezembro (1) Novembro (4)
emersonhermann.blogspot.com.br/2011/07/remover-caracteres-especiais-em-campos.html 3/5

27/11/13

O Peregrino: Remover caracteres especiais em campos do SQL Server

Agosto (5) Julho (4) Remover Letras em campos do SQL Server Full Text Search, Busca Textual no PostgreSQL Remover caracteres especiais em campos do SQL Serv... Remover caracteres especiais em campos do SQL Serv... Junho (3) Maio (1) Abril (2) Fevereiro (3) Janeiro (2) 2010 (6)

Quem sou eu O Peregrino Apenas um Peregrino, um pai de familia que tenta ganhar o po de cada dia como profissional de TI, trabalhou como DBA na FUNPEC instituio vinculada a UFRN (www.ufrn.br), como contratado, j trabalhou na FICAMP (www.ficamp.com.br), Peggasus (www.peggasus.com.br), e agora est na CHB (www.chbcredito.com.br) como Analista de Sistemas, ministra aulas de BD na IT Cursos (www.itcursos.com.br), e tambm presta consultoria em banco de dados. Na Bblia Sagrada, Hebreus 13:14 relata a minha situao. Visualizar meu perfil completo

Minha lista de blogs Certificao BD


[Treinamento] Oracle Trainning On Demand H uma semana

Oracle Blog
Pesquisando uma palavra ou texto em um schema do banco de dados Oracle
emersonhermann.blogspot.com.br/2011/07/remover-caracteres-especiais-em-campos.html 4/5

27/11/13

O Peregrino: Remover caracteres especiais em campos do SQL Server

H 3 semanas

Dirio de um DBA
De mudana H 3 semanas

Meu Blog de PostgreSQL!!!


Nada a temer com Lateral Joins no PostgreSQL 9.3! H 2 meses

Kenia Milene G.'s Blog


A Parte Que Te Cabe Nesse Latifndio H 2 meses

Agajorte: Java, Linux e Gastronomia


TV Serpro - Conectado: banco de dados espaciais PostGIS H 2 meses

Euler Taveira
O que esperar da verso 9.3 H 2 meses

-*- GeoMartins -*O .bind() salvou dia! H um ano

MyTraceLog - Registro de um DBA


Instalando novo HD SATA no CentOS 5.6 H um ano

Blog do Bruno Murassaki


GUOB TECH DAY 2011 H 2 anos

DBA de Saia
I'm Back... H 3 anos

www.profissionaloracle .com.br/gpo/

Modelo Awesome Inc.. Tecnologia do Blogger.

emersonhermann.blogspot.com.br/2011/07/remover-caracteres-especiais-em-campos.html

5/5