- Este tópico contém 7 respostas, 3 vozes e foi atualizado pela última vez 18 anos atrás por chduarte.
-
AutorPosts
-
12 de janeiro de 2007 às 2:57 pm #78334WendelParticipante
Olá
Estou usando o Banco de dados Oracle 9i Server no Windows XP e preciso que este torne-se Case Insensitive (não diferenciar letras maiúsculas e minúsculas). Consegui isto alterando os parâmetros da sessão do client com:SQL> alter session set nls_comp = ANSI;
SQL> alter session set nls_sort = GENERIC_BASELETTER;Porém desta forma vou precisar alterar o código em vários lugares. Alguém sabe como deixar isso na inicialização do Banco ou outra forma que não demande muita alteração no código? Me falaram que dá para alterar os parametros de inicialização do Banco, mas eu não sei como fazer isso, ou seja o caminho para isso. ALGUÉM saberia me informar como altera os parametros de inicialização do Banco de dados.
Wendel
12 de janeiro de 2007 às 3:20 pm #78339Marcio68AlmeidaParticipanteVocê tem no diretório de instalação do Oracle um diretório chamado PFILE onde está o arquivo init.ora
Basta inserir nesse arquivo as linhas :
nls_comp = ANSI
nls_sort = GENERIC_BASELETTER
é claro que será necessário reiniciar o banco…
lembrando-se também que isso tem um custo, avaliar bem antes de colocar em produção…12 de janeiro de 2007 às 9:21 pm #78375WendelParticipanteOlá achei um arquivo na pasta Oracle / Nomedobanco / init.ora.9849247923 só que não tinha nehum parametro NLS.. mas mesmo assim adicionei as linhas mas não fez efeito nenhum….
Tentei pelo Oracle Enterprise Manager, e encotrei onde estava esses parametros.. mas dai ao colocar a configuração: nls_sort=GENERIC_BASELETTER não dá para alterar, o oracle não deixa, da o seguinte erro “Falha ao aplicar o ……”.
Alguma idéia?Wendel
12 de janeiro de 2007 às 9:33 pm #78379chduarteParticipanteVoce deve estar utilizando o spfile.
Faca o seguinte. Conecte como DBA e faca o seguinte:
SQL> create pfile from spfile;
Va ate o diretorio: ORACLE_HOME/database
Deve ter um arquivo init.ora
Edite este arquivo.
Pare o banco com um shutdown immediate atravez do sqlplus.
SQL> shutdown immediate
Inicialize o seu banco utilizando o pfile:
SQL> startup pfile=/database/init.ora
Ainda com usuario DBA:
SQL> create spfile from pfile;
[]
16 de janeiro de 2007 às 2:43 pm #78449WendelParticipanteOlá
Até gostaria de tentar fazer isso, mas e se o desempenho baixar muito? Aqui na empresa eles queriam saber se isso é reversivel e como, pois se o desempenho das pesquisas baixar muito vamos reverter e fazer isso alterando o código e por sessão. Obrigado.Wendel
16 de janeiro de 2007 às 3:36 pm #78451chduarteParticipanteIsso é so um parametro de como o banco vai se comportar na hora da busca. Entenda que o oracle nao faz pesquisa por caracter, é sempre tudo 0/1. Esta é uma forma dele ignorar o acento.
Se voce tiver problemas de performance pode utilizar o Oracle Text que é bem mais eficiente e rapido e possui opcoes mais inteligentes.
[]
16 de janeiro de 2007 às 3:59 pm #78453WendelParticipanteMais um problema…..
Para a nossa aplicação precisamos tornar o banco de dados Case Insensitive… mas no Banco de dados existem outras bases que não podem ser Case Insensitive…
Pergunta: vocës sabem se tem como deixar só a nossa Base de dados como case insensitive, ou seja só um esquema… ou é 8 ou 80 mesmo.. o banco todo ou nada?Wendel
16 de janeiro de 2007 às 5:00 pm #78455chduarteParticipanteO parametro pode ser por sessao ou por instancia. Se voce quizer usuario podera escrever uma trigger de logon que habilita esta parametro na sessao do usuario.
Nao é possivel ter este nivel de granularidade por parametro.
[]
-
AutorPosts
- Você deve fazer login para responder a este tópico.