Pular para o conteúdo
  • Este tópico contém 10 respostas, 5 vozes e foi atualizado pela última vez 16 anos, 6 meses atrás por jspaulonci.
Visualizando 11 posts - 1 até 11 (de 11 do total)
  • Autor
    Posts
  • #89474
    jspaulonci
    Participante

      Boa tarde pessoal, apareceu uma necessidade e preciso da opinião dos srs.
      Vieram me pedir para sempre que o Oracle for fazer uma inserção ou atualização, o valor sempre seja maisculo.

      por exemplo
      se meu insert for

      insert into cliente values (‘forum’);
      ou
      insert into cliente values (‘Forum’);

      O resultado no momento do select seja FORUM.

      Como que eu faço isso ?

      Abraços , obrigado

      #89476
      Avatar photoLeonardo Litz
      Participante

        Voce pode fazer assim

        insert into cliente values (lower(‘Forum’));

        Mas, penso assim:

        As informãções devem ser mantidas no banco na sua forma natural, maiusculo, minusculo e etc. A formatação de saida quem pode seguir uma regra.

        Vlw Leonardo Litz

        #89477
        jspaulonci
        Participante

          Litz boa tarde,,,,não quero usar função, quero que o Oracle faça isso para mim automaticamente.

          #89479
          Rodrigofs
          Participante

            Ola Joao Paulo blz cara ?, esse requerimento é para uma tabela ou para todas as tabelas ?. Se for em algumas tabelas você pode usar a função UPPER, e alterar o seu codigo por exemplo:

            INSERT INTO CLIENTES VALUES (UPPER(‘forum’));

            Nesse caso você estar inserindo na tabela clientes os valores em maiusculo.
            Mas se você quer apenas que o resultado de um select seja maiusculo faça:

            SELECT UPPER(CAMPO) FROM CLIENTES.

            Litz, nesse é exemplo irá inserir um valor minusculo.

            Abracos,
            Rodrigo Santana.

            #89480
            jspaulonci
            Participante

              Rodrigo e Lits, desculpem por eu não ter explicado corretamente.

              Eu quero que isso seja para todas as tabelas de determinado owner, e quero também que o Oracle insira ou atualize tudo em MAÍSCULO .

              Alguem já passou por isso ?

              Obrigado

              #89483
              jspaulonci
              Participante

                Moçda….falei besteira…..esqueçam tudo ….!!!!

                Seguinte….independente de como o Oracle gravará no banco

                Banana, BANANA, banana, BaNaNa, BananA.

                Quando eu fazer um select e na clausula Where eu informar “banana”, eu quero que retorne todas as strings para banana, no exemplo que eu citei eu quero que retorne Banana, BANANA, banana, BaNaNa, BananA

                Agora sim…..

                Obrigado

                #89489
                Rodrigo Mesquita
                Participante

                  Façauma view consultando a tabela modificando o formato da palavra e deixando do jeito que vc quer.

                  em vez de consultar a tabela, consulte a view

                  #89492
                  Avatar photoLeonardo Litz
                  Participante

                    Ah cara, pq vc não falou antes:

                    tenta assim:

                    alter session set nls_comp=linguistic;

                    Muito comum em E-commerce.

                    Ah só para bancos >= 10g

                    Vlw Leonardo Litz

                    #89493
                    Avatar photoLeonardo Litz
                    Participante

                      Faltou uma coisa, denovo:

                      Ah cara, pq vc não falou antes:

                      tenta assim:

                      alter session set nls_comp=linguistic;
                      alter session set nls_sort=binary_ai;

                      Muito comum em E-commerce.

                      Ah só para bancos >= 10g

                      Vlw Leonardo Litz

                      #89494
                      fsitja
                      Participante

                        Dependendo de seu requisito, pode ser que você queira usar BINARY_CI, pois BINARY_AI ignora também acentos (a = [á, â, à, ä, ã, A, Á, Â, …]).

                        Para incrementar sua performance, você pode optar por criar um “índice linguístico”, que é um function-based index onde você seta o seu NLS_SORT para a opção binary_ai ou binary_ci. Ex:


                        CREATE INDEX indice ON tabela(NLSSORT(coluna, 'NLS_SORT=BINARY_CI'));

                        Mais detalhes na documentação abaixo:

                        http://download.oracle.com/docs/cd/B283 … m#i1008458

                        http://download.oracle.com/docs/cd/B283 … ngsort.htm

                        #89514
                        jspaulonci
                        Participante

                          Obrigado pessoal, funcionou, deu certo.

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