sql >> Databáze >  >> RDS >> Oracle

Vyhledávací text Oracle s neanglickými znaky

1) Pomocí nlssort s BINARY_AI (nerozlišují velká a malá písmena ani diakritika):

SQL> select nlssort('Peña Báináõ', 'NLS_SORT = BINARY_AI') C from dual;

C
------------------------
70656E61206261696E616F00

SQL> select nlssort('Pena Bainao', 'NLS_SORT = BINARY_AI') C from dual;

C
------------------------
70656E61206261696E616F00

SQL> select nlssort('pena bainao', 'NLS_SORT = BINARY_AI') C from dual;

C
------------------------
70656E61206261696E616F00

SQL> select 'true' T from dual where nlssort('pena bainao', 'NLS_SORT = BINARY_AI') = nlssort('Peña Báináõ', 'NLS_SORT = BINARY_AI') ;

T
----
true

2) Můžete také změnit proměnnou relace NLS_SORT na binary_ai a pak byste nemuseli pokaždé zadávat NLS_SORT:

SQL> select 'true' T from dual where nlssort('pena bainao') = nlssort('Peña Báináõ') ;

no rows selected

SQL> alter session set nls_sort = binary_ai;

Session altered.

SQL> select 'true' T from dual where nlssort('pena bainao') = nlssort('Peña Báináõ') ;

T
----
true

3) Chcete-li upustit od používání nlssort funkce a změnit sématiku všeho, také nastavte proměnnou session nls_comp:

SQL> select 'true' T from dual where 'pena bainao' = 'Peña Báináõ';

no rows selected

SQL> alter session set nls_comp = linguistic;

Session altered.

SQL> select 'true' T from dual where 'pena bainao' = 'Peña Báináõ';

T
----
true

Možnost 1 změní pouze místní chování, dotaz, kde chcete jiné výsledky. Možnost 2 a 3 změní chování ostatních dotazů a nemusí být to, co chcete. Viz Tabulka 5-2 z Příručka podpory globalizace databáze Oracle® . Podívejte se také do sekce "Použití lingvistických indexů ", abyste viděli, jak používat indexy.




  1. Co to znamená „normalizovat“ databázi?

  2. php kód pro generování více řádků s vlastním kódem

  3. Výpadky s EMCLI

  4. Laravel Migration Error:Chyba syntaxe nebo narušení přístupu:1071 Zadaný klíč byl příliš dlouhý; maximální délka klíče je 767 bajtů