Oracle 10gR2 및 JPA에서 유사한 대소문자 구분 및 악센트 구분을 수행하는 방법은 무엇입니까?
J2EE 프로젝트에서 JPA를 사용하여 유사한 쿼리를 대소문자 구분 없이 악센트 구분 없이 강제할 수 있는 방법은 무엇입니까?
세션 변수 NLS_COMP 및 NLS_SORT 변경에 대해서는 알고 있지만 세션 변수를 변경하지 않고 쿼리 자체에서 이 작업을 수행할 수 있는 다른 방법이 있는지 궁금합니다.
(...) JPA를 사용하여 유사한 쿼리를 대소문자 구분 없이 악센트 구분 없이 강제할 수 있는 방법은 무엇입니까?
저의 대답은 JPQL을 지향할 것입니다.앞 부분에서는 다음과 같은 작업을 수행할 수 있습니다.
where lower(name) like 'johny%';
나중 부분은 표준 JPQL 방식을 잘 모릅니다.
마지막으로 세션 변수 변경NLS_COMP
그리고.NLS_SORT
IMO가 최선의 선택입니다.
조잡하게도, 당신은 다음과 같은 것을 할 수 있습니다.
select upper(convert('This is a têst','US7ASCII')),
upper(convert('THIS is A test','US7ASCII'))
from dual;
select 1 from dual
where upper(convert('This is a têst','US7ASCII')) =
upper(convert('THIS is A test','US7ASCII'))
CONVERT는 악센트가 있는 문자를 매핑된 ASCII 등가로 줄이고, UPPER는 소문자를 대문자로 강제합니다.결과 문자열은 일치해야 합니다.
세션을 변경하지 않고 NLS_UPPER를 사용할 수 있습니다.
select 1
from dual
where nls_upper('große', 'NLS_SORT = XGerman') like '%OSSE%';
언급URL : https://stackoverflow.com/questions/4218780/how-to-do-a-like-case-insensitive-and-accent-insensitive-in-oracle-10gr2-and-jpa
'programing' 카테고리의 다른 글
각도 - 웹소켓 및 $rootScope.apply() (0) | 2023.10.27 |
---|---|
PL/SQL과 T-SQL의 차이점은 무엇입니까? (0) | 2023.10.27 |
CSV 파일을 위해 두 번 저장해야 함 (0) | 2023.10.22 |
AJAX에서 xml 응답을 구문 분석하는 가장 좋은 방법은 무엇입니까? (0) | 2023.10.22 |
외부 "C" 선언은 어떻게 작동합니까? (0) | 2023.10.22 |