Removendo e Bloquear o uso Caracteres especiais
24/10/2014
0
Gostaria de ajuda de vcs com relacao a um problema que tenho aqui na empresa.
Gosataria de saber se existe alguma forma pratica de removermos os caracteres especiais no banco, alguma funcao ou comando especifico.
E tambem se eh possivel fazer algum tipo de bloqueio para o uso destes caracteres.
Estou fazendo algumas pesquisas na net tbm, se alguem tiver ou souber e puder me ajudar, fico "devendo". rssr
Desde ja agradeco.
Abraco.
Alex Lekao
Post mais votado
07/11/2014
ALTER FUNCTION [dbo].[FN_REMOVE_CHAR_ESPECIAL] (@TXTINICIAL VARCHAR(MAX)) RETURNS VARCHAR(MAX) AS BEGIN DECLARE @TXTSEQUENCIA VARCHAR(MAX) /* CARACTERES MINUSCULOS */ SET @TXTSEQUENCIA = REPLACE(@TXTINICIAL COLLATE Latin1_General_BIN,char(225),'a') --SELECT 'á',ASCII('á'); --225 SET @TXTSEQUENCIA = REPLACE(@TXTSEQUENCIA COLLATE Latin1_General_BIN,char(224),'a') --SELECT 'à',ASCII('à'); --224 SET @TXTSEQUENCIA = REPLACE(@TXTSEQUENCIA COLLATE Latin1_General_BIN,char(227),'a') --SELECT 'ã',ASCII('ã'); --227 SET @TXTSEQUENCIA = REPLACE(@TXTSEQUENCIA COLLATE Latin1_General_BIN,char(226),'a') --SELECT 'â',ASCII('â'); --226 SET @TXTSEQUENCIA = REPLACE(@TXTSEQUENCIA COLLATE Latin1_General_BIN,char(233),'e') --SELECT 'é',ASCII('é'); --233 SET @TXTSEQUENCIA = REPLACE(@TXTSEQUENCIA COLLATE Latin1_General_BIN,char(232),'e') --SELECT 'è',ASCII('è'); --232 SET @TXTSEQUENCIA = REPLACE(@TXTSEQUENCIA COLLATE Latin1_General_BIN,char(234),'e') --SELECT 'ê',ASCII('ê'); --234 SET @TXTSEQUENCIA = REPLACE(@TXTSEQUENCIA COLLATE Latin1_General_BIN,char(237),'i') --SELECT 'í',ASCII('í'); --237 SET @TXTSEQUENCIA = REPLACE(@TXTSEQUENCIA COLLATE Latin1_General_BIN,char(236),'i') --SELECT 'ì',ASCII('ì'); --236 SET @TXTSEQUENCIA = REPLACE(@TXTSEQUENCIA COLLATE Latin1_General_BIN,char(238),'i') --SELECT 'î',ASCII('î'); --238 SET @TXTSEQUENCIA = REPLACE(@TXTSEQUENCIA COLLATE Latin1_General_BIN,char(243),'o') --SELECT 'ó',ASCII('ó'); --243 SET @TXTSEQUENCIA = REPLACE(@TXTSEQUENCIA COLLATE Latin1_General_BIN,char(242),'o') --SELECT 'ò',ASCII('ò'); --242 SET @TXTSEQUENCIA = REPLACE(@TXTSEQUENCIA COLLATE Latin1_General_BIN,char(244),'o') --SELECT 'ô',ASCII('ô'); --244 SET @TXTSEQUENCIA = REPLACE(@TXTSEQUENCIA COLLATE Latin1_General_BIN,char(245),'o') --SELECT 'õ',ASCII('õ'); --245 SET @TXTSEQUENCIA = REPLACE(@TXTSEQUENCIA COLLATE Latin1_General_BIN,char(250),'u') --SELECT 'ú',ASCII('ú'); --250 SET @TXTSEQUENCIA = REPLACE(@TXTSEQUENCIA COLLATE Latin1_General_BIN,char(249),'u') --SELECT 'ù',ASCII('ù'); --249 SET @TXTSEQUENCIA = REPLACE(@TXTSEQUENCIA COLLATE Latin1_General_BIN,char(251),'u') --SELECT 'û',ASCII('û'); --251 SET @TXTSEQUENCIA = REPLACE(@TXTSEQUENCIA COLLATE Latin1_General_BIN,char(252),'u') --SELECT 'ü',ASCII('ü'); --252 SET @TXTSEQUENCIA = REPLACE(@TXTSEQUENCIA COLLATE Latin1_General_BIN,char(231),'c') --SELECT 'ç',ASCII('ç'); --231 /* CARACTERES MAIUSCULOS */ SET @TXTSEQUENCIA = REPLACE(@TXTSEQUENCIA COLLATE Latin1_General_BIN,char(193),'A') --SELECT 'Á',ASCII('Á'); --193 SET @TXTSEQUENCIA = REPLACE(@TXTSEQUENCIA COLLATE Latin1_General_BIN,char(192),'A') --SELECT 'À',ASCII('À'); --192 SET @TXTSEQUENCIA = REPLACE(@TXTSEQUENCIA COLLATE Latin1_General_BIN,char(194),'A') --SELECT 'Â',ASCII('Â'); --194 SET @TXTSEQUENCIA = REPLACE(@TXTSEQUENCIA COLLATE Latin1_General_BIN,char(195),'A') --SELECT 'Ã',ASCII('Ã'); --195 SET @TXTSEQUENCIA = REPLACE(@TXTSEQUENCIA COLLATE Latin1_General_BIN,char(201),'E') --SELECT 'É',ASCII('É'); --201 SET @TXTSEQUENCIA = REPLACE(@TXTSEQUENCIA COLLATE Latin1_General_BIN,char(200),'E') --SELECT 'È',ASCII('È'); --200 SET @TXTSEQUENCIA = REPLACE(@TXTSEQUENCIA COLLATE Latin1_General_BIN,char(202),'E') --SELECT 'Ê',ASCII('Ê'); --202 SET @TXTSEQUENCIA = REPLACE(@TXTSEQUENCIA COLLATE Latin1_General_BIN,char(205),'I') --SELECT 'Í',ASCII('Í'); --205 SET @TXTSEQUENCIA = REPLACE(@TXTSEQUENCIA COLLATE Latin1_General_BIN,char(204),'I') --SELECT 'Ì',ASCII('Ì'); --204 SET @TXTSEQUENCIA = REPLACE(@TXTSEQUENCIA COLLATE Latin1_General_BIN,char(206),'I') --SELECT 'Î',ASCII('Î'); --206 SET @TXTSEQUENCIA = REPLACE(@TXTSEQUENCIA COLLATE Latin1_General_BIN,char(211),'O') --SELECT 'Ó',ASCII('Ó'); --211 SET @TXTSEQUENCIA = REPLACE(@TXTSEQUENCIA COLLATE Latin1_General_BIN,char(210),'O') --SELECT 'Ò',ASCII('Ò'); --210 SET @TXTSEQUENCIA = REPLACE(@TXTSEQUENCIA COLLATE Latin1_General_BIN,char(212),'O') --SELECT 'Ô',ASCII('Ô'); --212 SET @TXTSEQUENCIA = REPLACE(@TXTSEQUENCIA COLLATE Latin1_General_BIN,char(213),'O') --SELECT 'Õ',ASCII('Õ'); --213 SET @TXTSEQUENCIA = REPLACE(@TXTSEQUENCIA COLLATE Latin1_General_BIN,char(218),'U') --SELECT 'Ú',ASCII('Ú'); --218 SET @TXTSEQUENCIA = REPLACE(@TXTSEQUENCIA COLLATE Latin1_General_BIN,char(217),'U') --SELECT 'Ù',ASCII('Ù'); --217 SET @TXTSEQUENCIA = REPLACE(@TXTSEQUENCIA COLLATE Latin1_General_BIN,char(219),'U') --SELECT 'Û',ASCII('Û'); --219 SET @TXTSEQUENCIA = REPLACE(@TXTSEQUENCIA COLLATE Latin1_General_BIN,char(220),'U') --SELECT 'Ü',ASCII('Ü'); --220 SET @TXTSEQUENCIA = REPLACE(@TXTSEQUENCIA COLLATE Latin1_General_BIN,char(199),'C') --SELECT 'Ç',ASCII('Ç'); --199 RETURN (@TXTSEQUENCIA) END
Fabiano Carvalho
Mais Posts
24/10/2014
Alex Lekao
Achei esse post [url:descricao=Eliminando caracteres especiais de strings no SQL Server - Collate Leia mais em: Eliminando caracteres especiais de strings no SQL Server - Collate https://www.devmedia.com.br/eliminando-caracteres-especiais-de-strings-no-sql-server-collate/25286#ixzz3H4xreHAj]https://www.devmedia.com.br/eliminando-caracteres-especiais-de-strings-no-sql-server-collate/25286[/url] mas confesso que estou meio confuso. rsrsr
24/10/2014
Roniere Almeida
olha aqui:
[url]http://emersonhermann.blogspot.com.br/2011/07/remover-caracteres-especiais-em-campos.html[/url]
24/10/2014
Alex Lekao
Ate cheghei nesse link tbm, pelo que percebi nas pesquisas ate eh possivel vc mudar a collation com o banco em producao, mas nao sei se influenciara alguma coisa no ERP de modo geral.
Pelas pesquisas ate encontrei que tem como mudar a collation da coluna em especifico ou da tabela, mas pelo que estou vendo na cobre todos os caracteres. rsrr
24/10/2014
Roniere Almeida
24/10/2014
Alex Lekao
entao, fico a ver navios. rsrsr
24/10/2014
Roniere Almeida
24/10/2014
Alex Lekao
24/10/2014
Marisiana Battistella
Como se fizesse uma replica do banco...
24/10/2014
Roniere Almeida
24/10/2014
Marisiana Battistella
Eu faço isso quando preciso testar alguma coisa q não pode ser em produção...
28/10/2014
Alex Lekao
Eu ate fazia isso quando o servidor era local, agora como ele esta no Data Center, eu evito ficar movendo bases de la para ca(local).
Embora que seja possivel restaurar a base com outro nome, mesmo no Data Center, como o pessoal eh meio desconfiado, prefiro evitar.
To numa sinuca de bico.
=/
Como se fizesse uma replica do banco...
Ate é, mas eh meio complicado de fazer isso pelos motivos citados acima. rsrsr
28/10/2014
Roniere Almeida
28/10/2014
Alex Lekao
Sem crise... mas estou me virando a medida do possivel. rsrsr
28/10/2014
Roniere Almeida
28/10/2014
Marisiana Battistella
Você podia tentar pedir se é possível criar uma base testes que fique fixa e sempre com o mesmo nome.
Nunca apanhe esse banco. Elimine tabelas, limpe os dados quantas vezes for necessário, restaure backups de diferentes bases...
Parece meio louco, mas talvez seja uma idéia útil... =D
Clique aqui para fazer login e interagir na Comunidade :)