Oracle
 sql >> база данни >  >> RDS >> Oracle

Текст за търсене на Oracle с различни от английски знаци

1) Използване на nlssort с BINARY_AI (независими както от главни букви, така и от ударения):

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) Можете също така да промените сесийната променлива NLS_SORT на binary_ai и тогава няма да се налага да указвате 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) За да отмените използването на nlssort функция и промяна на сематиката на всичко, също задайте променливата на сесията 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

Опция 1 променя само локалното поведение, заявката, където искате различни резултати. Опции 2 и 3 ще променят поведението на други заявки и може да не са това, което искате. Вижте Таблица 5-2 от Ръководство за поддръжка на Oracle® Database Globalization . Вижте също раздела "Използване на езикови индекси “, за да видите как да можете да използвате индекси.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да разделя низ по ред с разделен със запетаи низ и (евентуални) празни полета между запетаи

  2. Вмъкване на набор от данни в таблицата на Oracle

  3. Незабавно изпълнение в рамките на Oracle Procedure

  4. Изтрийте подчинен и родителски ред с един SQL скрипт

  5. База данни на Oracle с първичен ключ Java JDBC