정규식은 언어마다 조금씩 해석기가 다르다.. 해석기가 다르니 규칙도 조금씩 다르다...... \s, \w 같은 예약어도 통일성이 없다..... 후후후후 그러니 꼭 사용할 언어 환경에서 테스트해야함!!!!! 매번 검색하기 귀찮아서 아예 포스팅으로 남긴다@_@ - 정규식 테스트 사이트의 본좌 RegExr http://www.regexr.com/ - Ruby기반 http://rubular.com/ - Java기반 http://www.regexplanet.com/advanced/java/index.html - 정규식의 시각화 http://www.regexper.com/ - 정규식 추천해주는 사이트 개이득ㅋ http://txt2re.com/index.php3 [ Oracle - 정규식 - AND, OR 검색 ]
오라클 REGEXP 정규식 사용방법에 대해서 알아보자 각 언어마다 대부분 존재하며 사용방법은 조금씩 다르다. https://lsj.kr/regexp/ => 자바스크립트 정규표현식 관련글
예제를 보면서 습득하는게 좋을테니 바로 예제로 들어 간다.~~ REGEXP_LIKE 데이터에 *와 숫자가 혼합되어 들어 있는 문자열 컬럼인데, 숫자만 가져와 곱셈을 하는 로직이 있는 SQL이 있었다.
SQL Error [ERRDT]: JDBC-5074:Given string does not represent a number in proper format.
헌데 문자열 데이터에 숫자와 * 이외에도 1Z 등 숫자가 아닌 놈들이 들어 오게 되었다. WHERE 절을 REGEXP을 이용해서 숫자만 추출하면 sql오류를 잡을 수 있다.
하지만 오류는 여전하다. 이유는 숫자가 포함된 데이터는 모두 가져오기에 1Z, 77A 머 요런것들이 걸러지지 않아서이다.
인데, 티베로에선 SQL Error [42000]: JDBC-8007:Missing boolean expression. 오류가 난다. ㅡㅡ^ 오라클에서는 반환되는 게 TRUE, FALSE, NULL 인가 보다. 하지만 티베로는 아니니 아래와 같이 NOT 연산자를 적절히 섞어 사용하면된다.
숫자만 있는 놈들만 쓸려면
요런식으로 문자열에 숫자만 들어있는 ROW만 숫자로 변환해서 사용할 수 있다.
13Z, Z25Z, AB13G3 요런 데이터가 있다면 숫자로 걍 바꿔서 써도 되는거
|