Oracle 10g에서는 두 문자열간에 다른 문자를 나열하는 정규 표현식을 작성하려고합니다.두 문자열 사이의 고유 한 문자 차이를 나열하는 Oracle 정규식
이유는 다음과 같습니다. 프랑스어가 아닌 유니 코드 문자가 들어있는 테이블이 있습니다.
나는이 쿼리와 미래 정리를 만들기 위해이 nonstandards 문자를 포함하는 행을 표시 할 수 있어요 :
SELECT DataID, Name, CONVERT(NAME, 'WE8ISO8859P1', 'WE8DEC')
FROM table
WHERE NAME <> CONVERT(NAME, 'WE8ISO8859P1', 'WE8DEC')
곳 WE8ISO8859P1 - 서유럽 (나는 동의 함)
및 WE8DEC - 8 디지털 장비 회사의 비트 문자 세트 (애플리케이션 지원을 알고 있음)
오라클 정규 표현식을 사용하면 이러한 모든 비표준 목록을 추출 할 수있을 것이라고 생각합니다. s 문자. 하지만 오라클의 정규 표현식에 익숙하지 않아 도움이 될 것입니다.
select regexp_replace("éaé", '[a-z][A-Z]', '') from dual;
정리에 문자로 "é"를 줄 것이다 : 여기
내 (작동하지 않는) 생각이다.
SQL> select regexp_replace('éaéABcdEF', '([a-zA-Z])', '') problems from dual;
PROBLEMS
--------
éé
그것은 당신에게 당신이 식별 할 문자의 각 발생을 제공하지만, 아마도 그건 문제가되지 않습니다 또는 당신은 그것을 구체화 할 수 있습니다 .. :
이 aaaaabcde 'DISTINCT SUBSTR ( 을 선택 ( FROM ( 그룹 내에서 (편지 BY ORDER) LISTAGG 편지, 을') 'SELECT', 레벨,) FROM 이중 연결 레벨 <= 길이 (' aaaaabcde ') ) –