Pular para o conteúdo
Visualizando 11 posts - 1 até 11 (de 11 do total)
  • Autor
    Posts
  • #78612
    Wendel
    Participante

      Olá
      Estou com problema com o comando Like quando altero a sessao do oracle para o banco não diferenciar maisculas e minusculas, com os seguintes parametros:
      alter session set nls_comp = ansi
      alter session set nls_sort = generic_baseletter

      ao executar o comando abaixo o banco retorna os resultados corretos:
      select * from fornecedor where no_razaosocial_fornecedor = ‘telSon’

      ao executar o comando abaixo o banco não retorna os resultados corretos:
      select * from fornecedor where like no_razaosocial_fornecedor = ‘%elSon’

      Alguém sabe como fazer funcionar o comando LIKE funcionar depois de alterada a sessão. Valeu!

      WENDEL

      #78613
      Marcio68Almeida
      Participante

        comando LIKE
        Select * from tabela where coluna LIKE '%string%'

        #78615
        santosclay
        Participante

          E ai cara blz!!!

          Vc poderia testar o comando abaixo pra ver se resolvemos o seu problema:

          alter session set nls_comp=’LINGUISTIC’

          Aguardo retorno Clayton.

          #78617
          Wendel
          Participante

            Clayton

            Esse parâmetro não é reconhecido pelo Oracle 9i. Da a seguinte mensagem ao tentar executar: ORA-12705: valor inválido ou desconhecido do parâmetro NLS especificado

            Alguem já teve esse problema??

            Wendel

            #78619
            drumond
            Participante

              Cara só uma pergunta, não seria mais facil usar as funçoes do oracle tipo UPPER ou LOWER, para comparar ? Aqui usamos desta forma … 🙂

              #78622
              Marcio68Almeida
              Participante

                Drumond, o comando serve também para não diferenciar acentuações e cedilhas…

                Wendel, você não está encerrando a sessão e fazendo uma nova conecção, ou então alterando a sessão no SQL Plus e tentando a função dentro de um programa, né ???

                #78624
                Wendel
                Participante

                  Marcio antes de por isso na aplicação eu estou testando no TOAD FOR ORACLE e é nele que não funciona. Verifiquei com um colega e ele falou que ao alterar esse comando de sessão o Like náo funciona mesmo, e também outros comandos, mas infelizmente ele não sabia qual os comandos que não funcionam. Alguem sabe qual os comando que não funciona ao alterar o paramentros de sessão abaixo:
                  alter session set nls_comp = ansi
                  alter session set nls_sort = generic_baseletter

                  Pois assim eu vou tratar no código com UPPER e LOWER essas partes

                  Wendel

                  #78625
                  santosclay
                  Participante

                    Olá amigos.

                    Realmente o que eu te disse estava errado pois a minha fonte foi a documentação do ora 10.

                    Eu dei uma lida na documentação do ora 9

                    http://download-east.oracle.com/docs/cd … tm#1007931

                    E o seu comando esta certo.

                    Porém não consegui terminar a documentação para ver se existe alguma restrição neste comando.

                    Abraços e desculpe-me pela falha.

                    Clayton.

                    P.S.”Estou continuando a pesquisa sobre o assunto rs…”.

                    #78700
                    santosclay
                    Participante

                      Olá Amigo blz!!!

                      Cara eu fiquei pensando sobre o seu problema e esqueci de perguntar uma coisa:

                      Em que SO(Linux, Windows, UNIX …..) esta rodando o seu banco?

                      Digamos que o banco esteja rodando em linux e o encoding do mesmo não esteja configurado para suportar português brasil, o oracle pode ter problemas para interpretar o comando Like em função da cofiguração do SO.

                      Abraços Clayton.

                      #78703
                      chduarte
                      Participante

                        Na verdade neste caso o like nao compara “interpretando” o idioma. Ele utiliza-se de regras binarias.

                        Também, o portugues, ingles ou alemao que o banco da suporte é relacionado às mensagens.

                        Tente a seguinte combinacao:
                        ALTER SESSION SET NLS_SORT=BINARY_CI;
                        ALTER SESSION SET NLS_COMP=LINGUISTIC;

                        Para uma documentacao completa sobre toda a parte de nls acesso o link:
                        http://download-east.oracle.com/docs/cd … m#NLSPG005

                        []

                        #78704
                        santosclay
                        Participante

                          Olá Duarte blz!!!

                          Então cara em uma mensagens que postei no forúm sobre o assunto tb coloquei um link relacionado ao assunto, onde este tb continha os mesmos comandos postados por tí.
                          Porém o Wendel postou no forúm que ele estava utilizando o ORA 9 e não o 10.

                          Eu dei uma lida na documentação do ORA 9 (postei um link sobre o assunto no tópico) e cheguei a conclusão que o procedimento executado pelo Wendel estava correto, mas não estava funcionado. Não achei uma maneira de lhé repassar uma solução via alteração de parâmetros de sessão. O Wendel deve ter solucionado a questão na linha de código mesmo, como alguns membros do forúm recomendaram.

                          Conversando com alguns amigos sobre assunto, alguns recomendaram que a especificação do encondig da SO fosse verificada, baseando-se em experiências passadas que os mesmo tiveram.

                          Realmente na teoria a sua posição esta correta, porém sou partidário da idéia que na prática, principalmente se tratando de linux algumas coisas estão fora da lei rs….

                          Abraços.

                          Clayton.

                          P.S. “Por favor não é minha intenção gerar polemica, a minha resposta tem dois objetivos:

                          1 – Justificar a minha recomendação, tendo em mente que posso errar e espero aprender muito com eles rs….
                          2 – Preservar a credibilidade do GPO perante seus usuários”.

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