- Este tópico contém 10 respostas, 5 vozes e foi atualizado pela última vez 16 anos, 6 meses atrás por
jspaulonci.
-
AutorPosts
-
4 de setembro de 2009 às 8:09 pm #89474
jspaulonci
ParticipanteBoa 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 forinsert 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
4 de setembro de 2009 às 8:17 pm #89476Leonardo Litz
ParticipanteVoce 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
4 de setembro de 2009 às 8:18 pm #89477jspaulonci
ParticipanteLitz boa tarde,,,,não quero usar função, quero que o Oracle faça isso para mim automaticamente.
4 de setembro de 2009 às 8:29 pm #89479Rodrigofs
ParticipanteOla 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.4 de setembro de 2009 às 8:31 pm #89480jspaulonci
ParticipanteRodrigo 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
4 de setembro de 2009 às 8:49 pm #89483jspaulonci
ParticipanteMoç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
4 de setembro de 2009 às 9:45 pm #89489Rodrigo Mesquita
ParticipanteFaç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
5 de setembro de 2009 às 12:09 am #89492Leonardo Litz
ParticipanteAh 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
5 de setembro de 2009 às 12:17 am #89493Leonardo Litz
ParticipanteFaltou 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
5 de setembro de 2009 às 12:47 am #89494fsitja
ParticipanteDependendo 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
8 de setembro de 2009 às 12:58 pm #89514jspaulonci
ParticipanteObrigado pessoal, funcionou, deu certo.
-
AutorPosts
- Você deve fazer login para responder a este tópico.