Pular para o conteúdo
  • Este tópico contém 7 respostas, 3 vozes e foi atualizado pela última vez 18 anos atrás por chduarte.
Visualizando 8 posts - 1 até 8 (de 8 do total)
  • Autor
    Posts
  • #78334
    Wendel
    Participante

      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

      #78339
      Marcio68Almeida
      Participante

        Você 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…

        #78375
        Wendel
        Participante

          Olá 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

          #78379
          chduarte
          Participante

            Voce 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;

            []

            #78449
            Wendel
            Participante

              Olá
              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

              #78451
              chduarte
              Participante

                Isso é 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.

                []

                #78453
                Wendel
                Participante

                  Mais 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

                  #78455
                  chduarte
                  Participante

                    O 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.

                    []

                  Visualizando 8 posts - 1 até 8 (de 8 do total)
                  • Você deve fazer login para responder a este tópico.
                  plugins premium WordPress