Ignorar caracteres especiais e letras maiúsculas/minúsculas

DBA Geral (instalação, configuração do banco, scripts do Sql*Plus, shell scripts, batch scripts, etc...)
Responder
afonso.augusto
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 21
Registrado em: Qui, 06 Jun 2013 2:06 pm

Olá, estou utilizando o Oracle 9i.
Eu necessito de que todas as minhas consultas sejam ignorando caracteres especiais e letras maiúsculas ou minúsculas.
Existe um parâmetro de inicialização do Oracle ou algo que eu possa usar que isso seja padrão?

preciso para evitar o uso de escape ou regex em cada consulta.

Obrigado.
Avatar do usuário
stcoutinho
Moderador
Moderador
Mensagens: 850
Registrado em: Qua, 11 Mai 2011 5:15 pm
Localização: são Paulo - SP

Afonso,

Não sei se funcionaria no 9i, mas pesquise sobre estes parâmetros:

ALTER SESSION SET NLS_COMP = LINGUISTIC
ALTER SESSION SET NLS_SORT = BINARY_AI

Os comandos acima teoricamente permitem que a consulta na sessão sejam CASE INSENSITIVE e ACCENT INSENSITIVE.

Não sei se existe no 9i, mas você poderia criar uma trigger de LOGON para deixar estas variáveis setadas para um determinado usuário, como por exemplo XPTO:

Selecionar tudo

CREATE OR REPLACE TRIGGER TG_ALTER_SESSION
AFTER LOGON 
ON DATABASE 
BEGIN 
  IF USER LIKE 'XPTO%' THEN 
     EXECUTE IMMEDIATE 'ALTER SESSION SET NLS_COMP = LINGUISTIC';  
     EXECUTE IMMEDIATE 'ALTER SESSION SET NLS_SORT = BINARY_AI';  
  END IF; 
END TG_ALTER_SESSION; 
Agora, para desprezar os "caracteres especiais", você poderia criar "expressões regulares" para desconsiderar nas queries estes caracteres.

Espero que alguma das informações acima lhe ajude.

At.

Sergio Coutinho
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 9 visitantes