본문 바로가기

전체 글

오라클 정규표현식 함수 regexp_instr, regexp_substr 샘플예제 (문자열의 위치 찾기, 추출하기) Oracle Database 에 있는 일반 문자열 함수 instr(), substr() 에 Regular Expression(정규식)을 쓸 수 있도록 한 것이 regexp_instr(), regexp_substr() 입니다. 기존에 instr() 이 문자열이 나타나는 위치를 리턴하고, substr() 함수가 문자열내에 일부를 잘라내는 기능을 가지고 있는데, regexp_instr(), regexp_substr() 도 똑같습니다. regexp_instr() 함수의 구문(Syntax)은 다음과 같습니다. regexp_substr() 함수의 구문(Syntax)은 다음과 같습니다. source_char : 대상 문자열 pattern : 정규표현식 패턴 position : 문자열내에서 (패턴을 체크할) 처음 시작.. 더보기
집에서 할수 있는 재미있는 다이어트 운동기구 #2 - 오큘러스 퀘스트2 비트세이버 지난번에 집에서 할 수 있는 운동기구로 오큘러스 VR 장비를 이용한 복싱게임 "FitXR" 을 소개한 적이 있는데, 이번에는 2탄으로 "비트세이버(Beat Saber)" 를 소개하려고 합니다. 일단, 저같이 엄청난 게임이 목적이 아닌 집에서 할 수 있는 다이어트 운동기구로 VR 장비를 선택하고자 하는 경우에는 "오큘러스 퀘스트2" 를 구매하시기를 강력 추천드립니다. VR 장비가 찾아보면 꽤 종류가 많습니다. 플레이스테이션에 연결하는 VR도 있고 .... 오큘러스사에서 판매하는 VR 기기도 현재 2종류입니다. Oculus Quest2 와 Oculus Rift 근데, 오큘러스 리프트는 메인 장비 또는 컴퓨터와 선을 연결해야 하는 큰 단점이 있습니다. 오큘러스 퀘스트2 는 선을 연결할 필요가 없고, 모든게 머.. 더보기
오라클 정규표현식 함수 regexp_count 함수 샘플예제 (문자열내에 반복 패턴 카운트) 오라클에서 제공하는 정규표현식(Regular Expression) 지원 함수중에서 regexp_count() 함수는 문자열중에 매칭되는 문자열 또는 패턴이 몇번 나오는지 카운트 합니다. Oracle 의 기존 count() 함수는 로우갯수(레코드 갯수)를 세는데 반해, regexp_count() 는 하나의 문자열내에서 반복문자열의 갯수를 세는 점이 크게 다릅니다. regexp_count 기본 구문(Syntax)는 다음과 같습니다. 예제를 통해서 사용법을 확인해보면, ♣ 문자열내 3번째 위치부터 '123' 이 몇번 반복되는지 카운트 '123123123123' 문자열에서 '123' 은 4번 반복되는데, 3번째 문자위치부터 카운트해서 3번 이라는 결과가 나왔습니다. ♣ 문자열내에서 'CD' 가 몇번 반복되는지 .. 더보기
오라클 like 구문 업그레이드 regexp_like 샘플예제 (전화번호 포맷이 일치하지 않는 데이터 찾아내기 SQL문) 앞에서 오라클 정규표현식 regexp_like 를 이용해서 기존에 like 만 가지고 조회하기 어려웠던 것을 매우 쉽게 하는 것을 살펴봤습니다. 이번에는 좀더 복잡한 형태의 like 조회 예제를 해보겠습니다. 오라클 hr 샘플유저에 있는 EMPLOYEES 테이블의 phone_number 를 조회하면, 아래와 같이 전화번호가 2가지 형태로 들어가 있습니다. 이 전화번호 데이터에서 특정 형태(포맷)와 일치하는 데이터만 조회하고자 하는 경우, 일반 like 문으로는 구현하기 매우 까다롭습니다. 하지만, regexp_like(...) 를 이용하면 아주 간단하게 조회할 수 있습니다. 패턴문자열 '([[:digit:]]{3})\.([[:digit:]]{3})\.([[:digit:]]{4})' 는 999.999.99.. 더보기
오라클 like 구문 업그레이드 regexp_like 샘플예제 (정규표현식 기본 응용) 오라클에서 제공하는 정규표현식 지원 함수 regexp_like 를 이용하면 기존 like 구문에서 할 수 없었거나 아주 어렵게 구현했던 부분들을 아주 쉽게 구현할 수 있습니다. regexp_like 기본 구문(Syntax) 는 다음과 같습니다. 예제를 통해서 사용법을 확인해보면, ♣ 문자열내에 특정문자(A, M, S) 문자가 들어가 있는 이름 찾기 '|' 기호는 or 의 의미를 가지고 있습니다. 근데, and 의 의미를 가진 '&' 는 없습니다. ㅎㅎ & 는 정규표현식에 원래 없습니다. ♣ 특정문자(N)로 끝나는 이름 찾기 ♣ 특정문자(S)로 시작하는 이름 찾기 $ 는 문자 뒤에 붙이고, ^ 는 문자 앞에 붙이는 차이가 있습니다. ♣ 특정문자(A, M, S) 문자가 들어가 있는 이름 찾기 (대소문자 구분.. 더보기
오라클 정규식, 정규표현식(Regular Expression) 이란? 그리고 사용방법. 정규표현식(Regular Expression, 레귤러 익스프레션)이라고 하면 너무 어렵게 느껴지지만 우리가 알게 모르게 지금껏 많이 써오던 것입니다. 도스창, 윈도우즈의 커맨드창에서 *(별표), ?(물음표) 같은 기호들을 파일 찾을때 많이 사용해왔었는데, 바로 이게 정규표현식의 일부입니다. 예) dir A* (A로 시작하는 모든 파일 찾기) Linux 나 Unix 시스템에서도 vi 에디터에서 ^ 는 첫문자, $ 는 마지막 문자를 가리키는데, 이것도 정규표현식의 일부입니다. 이런 정규표현식에 대한 설명 및 문법은 위키백과에 아주 상세하게 잘 정리되어 있습니다. 참고 >> 정규 표현식 - 위키백과, 우리 모두의 백과사전 위 위키백과의 설명을 보면, *, ?, ^, $ 정도가 아니라, [] {} () . + .. 더보기
오라클 PL/SQL 함수(Function) 병렬처리 옵션 (parallel_enable) Oracle DB 내에서 PL/SQL "함수" 를 만들때 병렬처리 옵션을 줄 수가 있습니다. 병렬처리 옵션 주는 방법은 매우 간단한데, 효과는 엄청납니다. create function 함수 생성 문장에서 "parallel_enable" 문구만 뒤에 추가해주면 끝입니다. -- 함수 (싱글처리) create or replace function func_s (p_val number) return number is v_ret number; begin select dbms_random.value(1, p_val) into v_ret from dual; return v_ret; end; / -- 함수 (병렬처리) create or replace function func_p (p_val number) return n.. 더보기
테이블, 인덱스, 뷰, 시퀀스 rename to (이름 변경) SQL 구문 (ORA-14047, ORA-01765) Oracle DB 에서 Table, View, Sequence, Private Synonym 의 이름변경시에는 "rename ~ to" 구문을 사용할 수 있습니다. SQL> rename TAB1 to TAB2; SQL> rename VIEW1 to VIEW2; SQL> rename SEQ_TEMP1 to SEQ_TEMP2; SQL> rename SYN_TAB1 to SYN_TAB2; -- Synonym은 Private Synonym 만 가능하고, Public Synonym 은 안됩니다. Table 의 경우에는 "alter table ..." 구문으로도 이름 변경이 가능합니다. SQL> alter table TAB1 rename to TAB2; Table 의 경우는, 위 2가지 방법이 모두 가능한데, In.. 더보기