Os comandos a seguir habilitam, na sessão do usuário, a comparação por linguística e a classificação binária desconsiderando acentuação e case insensitive:
1 2 3 4 5 6 7 8 9 10 | ALTER SESSION SET NLS_SORT= 'BINARY_AI' ; ALTER SESSION SET NLS_COMP= 'LINGUISTIC' ; CREATE TABLE teste (texto VARCHAR2(10)); INSERT INTO teste VALUES ( 'Macaco' ); INSERT INTO teste VALUES ( 'maça' ); INSERT INTO teste VALUES ( 'maçarico' ); INSERT INTO teste VALUES ( 'MAÇONARIA' ); SELECT texto FROM teste WHERE texto like 'mac%' ; |
TEXTO
---------
Macaco
maça
maçarico
MAÇONARIA
O mesmo resultado é processado com a seguinte instrução:
1 | SELECT texto FROM teste WHERE texto like 'MAÇ%' ; |
Mesmo informando o acento, como no segundo comando, registros sem acentuação são Macaco sem acento é retornado.
O Oracle também suporta a busca ordena por um idioma:
1 | SELECT texto FROM teste ORDER BY NLSSORT(texto, 'NLS_LANG = PT' ); |
Outra funcionalidade, apresentar a descrição da data em um determinado idioma:
1 2 | SELECT to_char(sysdate, 'DD/MON/YYYY' , 'nls_date_language = French' ) FROM dual; |
Link para a documentação online dessas funcionalidades.