728x90
반응형
728x90
반응형

 

Oracle REVERSE 함수 사용방법

 

 

REVERSE 함수 - 문자열 뒤집기, 문자열 역순 출력

SELECT REVERSE('문자열') FROM DUAL;

 

 

 

728x90
반응형
728x90
반응형

 

REGEXP_REPLACE 함수 Example

 

 

REGEXP_REPLACE 함수란?

REPLACE함수를 확장한 개념으로 주어진 문자열에서 특정 정규패턴을 찾아서 지정한 문자열로 변경하는 함수

 

 

REGEXP_REPLACE 문법

REGEXP_REPLACE( source_string, pattern [, replace_string [ , position [, parameters ] ] ] )

source_string

  • 검색할 컬럼명, 문자열

pattern

  • 찾고자 하는 정규식 패턴

replace_string

  • (선택) 변경하고자하는 문자열, 기본값은 빈 문자열("")

position

  • (선택) 검색시작위치, 기본값 1

parameters

  • (선택) 기본값 c
  • c - 대소문자 구분 검색
  • i - 대소문자 구분 하지 않고 검색 (구분x)
  • m - 검색조건 여러줄

 

 

정규식문법

. 하나의 문자를 의미합니다.  ".*"하면 한개이상의 문자 즉 모든 문자를 의미합니다.
$ 끝을 의미한다. AAA$ 하면 AAA로 끝나는 것을 의미한다.
\ 특수 문자를 문자로 인식할때 사용합니다.
¦ 여러 식 중에서 하나를 선택합니다. SQL의 OR조건과 같습니다. "abc¦adc"는 abc와 adc 문자열을 모두 포함한다.
^ 문자 클래스 안의 문자를 제외한 나머지를 선택한다. 예를 들면 [^abc]d는 ad, bd, cd는 포함하지 않습니다. [^a-z]는 알파벳 소문자로 시작하지 않는 모든 문자를 의미한다.
[] "["과 "]" 사이의 문자 중 하나를 선택한다. "¦"를 여러 개 쓴 것과 같은 의미이다. 예를 들면 [abc]d는 ad, bd, cd를 뜻한다. 또한, "-" 기호와 함께 쓰면 범위를 지정할 수 있다. "[a-z]"는 a부터 z까지 중 하나, "[1-9]"는 1부터 9까지 중의 하나를 의미한다.
() 여러 식을 하나로 묶을 수 있다. "abc¦adc"와 "a(b¦d)c"는 같은 의미를 가진다.
* 0개 이상의 문자를 포함한다. "a*b"는 "b", "ab", "aab", "aaab"를 포함한다.
+ "a+b"는 "ab", "aab", "aaab"를 포함하지만 "b"는 포함하지 않는다. [+ 앞 내용 기준]
 ? "a?b"는 "b", "ab"를 포함한다. [? 다음 내용 기준]
{m} "a{3}b"는 "aaab"만 포함한다.
{m,} "a{2,}b"는 "aab", "aaab", "aaaab"를 포함한다. "ab"는 포함되지 않는다.
{m, n} "a{1,3}b"는 "ab", "aab", "aaab"를 포함하지만, "b"나 "aaaab"는 포함하지 않는다
\n 1에서 9까지의 숫자를 의미
\d Matches a digit character.
\D Matches a nondigit character.
\w Matches a word character.
\W Matches a nonword character.
\s Matches a whitespace character.
\S matches a non-whitespace character.

 

Class 문법

[:alnum:] 영어와 숫자
[:alpha:] 알파벳, [A-Za-z]
[:blank:] 공백과 탭
[:digit:] 숫자
[:lower:] 소문자, [a-z]
[:punct:] 특수문자
[:space:] 공백(스페이스)
[:upper:] 대문자, [A-Z]
[가-힣] 한글전체

출처 : https://nicola-ml.tistory.com/57

 

 

REGEXP_REPLACE  사용예제

 

단어에서 모든 숫자를 특수문자(*)로 변경하기

REGEXP_REPLACE(컬럼명, '[[:digit:]]', '*')

 

숫자를 찾아 뒤에 -*를 추가하기

REGEXP_REPLACE(컬럼명, '([0-9])', '\1-#$')

 

숫자 중간에 . / IP. 삭제하기

REGEXP_REPLACE(컬럼명, '\.', '')

 

공백 N칸이상 일때 특수문자로 변경하기

( ) -> \s 사용가능 [위의 정규식문법참조]

REGEXP_REPLACE('AAA BBB', '( ){2,}', '*') AS "공백 1칸"

REGEXP_REPLACE('AAA  BBB', '( ){2,}', '*') AS "공백 2칸"

REGEXP_REPLACE('AAA   BBB', '\s{2,}', '*') AS "공백 3칸"

 

특정문자열 형태를 다른 형태 변경하기

[[:digit:]] -> \d 사용가능 [위의 정규식문법참조]

REGEXP_REPLACE(컬럼명, '([[:digit:]]{4})(\d{2})(\d{2})', '\1-\2-\3') AS "그룹뒤 문자삽입"

 

특정문자열 형태를 다른 형태 변경하기

[[:digit:]] -> \d 사용가능 [위의 정규식문법참조]

REGEXP_REPLACE(컬럼명, '([[:digit:]]{4})(\d{2})(\d{2})', '\2*\1-\3') AS "그룹뒤 문자삽입1"

REGEXP_REPLACE(컬럼명, '([[:digit:]]{4})(\d{2})(\d{2})', '\3-\2') AS "그룹뒤 문자삽입2"

REGEXP_REPLACE(컬럼명, '([[:digit:]]{4})(\d{2})(\d{2})', '&\1-\2%\3') AS "그룹뒤 문자삽입3"

 

 

 

728x90
반응형
728x90
반응형

 

TBR-5072: 에러 해결하기

 

Tool : tbAdmin 

툴에서 테이블 삭제시 발생

 

 

해결방법

 

1) SYS계정 로그인

2) SELECT OBJECT_ID FROM DBA_OBJECTS WHERE OWNER = '[OWNER_NAME]' AND OBJECT_NAME = '[TABLE_NAME]' ;

3) SELECT OBJ_ID FROM _DD_TBL WHERE OBJ_ID = [2번에서 알아낸 OBJECT_ID] ;

4) UPDATE _DD_TBL SET ROW_CNT = 0 WHERE OBJ_ID = [3번에서 알아낸 OBJ_ID] ;

5) Commit;

 

 

 

728x90
반응형

'DB > Tibero' 카테고리의 다른 글

[Tibero] 공간데이터 Geometry Insert  (0) 2021.02.18
[Tibero] Geometry export Error  (0) 2021.01.10
[Tibero] Oracle Character Set Check  (0) 2020.04.05
728x90
반응형

 

Spring Mabits의 CDATA 사용하기

 

 

CDATA란?

  • Character DATA의 줄임말
  • 아래 4가지 경우일때 사용
  • <    /    [ &lt]
  • >    /    [&gt]
  • &    /    [&amp]
  • "    /    [quot]

 

 

CDATA사용방법

1안

<select id = "selectTest" resultMap = "testMap">

    <![CDATA[

SELECT * FROM TEST WHERE COL > 5

    ]]>

<select>

 

2안

<select id = "selectTest" resultMap = "testMap">

SELECT * FROM TEST WHERE COL <![CDATA[ > ]]> 5

<select>

 

 

 

728x90
반응형
728x90
반응형

 

Case 표현식 사용방법

 

 

CASE 표현식1 (알리아스는 생략가능)

SELECT CASE WHEN [조건식1]  THEN [조건식1 True일경우 리턴값]

                          WHEN [조건식2]  THEN [조건식2 True일경우 리턴값]

                          ELSE [조건식1, 2 False일경우 리턴값]

                 END AS [알리아스명, 별칭]

    FROM 테이블명;

 

CASE 표현식2 (알리아스는 생략가능)

SELECT CASE [대상값] WHEN [값1] THEN [대상값과 값1이 True일경우 리턴값]

                                         WHEN [값2] THEN [대상값과 값2이 True일경우 리턴값]

                                         ELSE [대상값과 일치하는 값1,2가 False일경우 리턴값]

                   END AS [알리아스명, 별칭]

    FROM 테이블명;

 

 

 

728x90
반응형
728x90
반응형

 

자리수 올림, 내림, 반올림 함수 사용방법

 

 

자리수 올림

SELECT CEIL(N) FROM DUAL;

 

자리수 내림

SELECT FLOOR(N) FROM DUAL;

 

자리수 반올림

SELECT ROUND(N, 반올림할 소수점 위치) FROM DUAL;

 

자리수 버림

SELECT TRUNC(N, 림할 소수점 위치) FROM DUAL;

 

 

 

728x90
반응형

'DB > Oracle' 카테고리의 다른 글

[Oracle] REGEXP_REPLACE 함수Example  (0) 2024.03.06
[Oracle] Case 표현식 Example  (0) 2024.01.18
[Oracle] MONTHS_BETWEEN 함수 Example  (0) 2024.01.18
[Oracle] LISTAGG 함수 Example  (0) 2024.01.18
[Oracle] 프로시저(PROCEDURE) 실행 Example  (0) 2023.12.28
728x90
반응형

 

MONTHS_BETWEEN 함수 사용방법

 

 

두개의 날짜 사이 개월 수 계산하기

SELECT MONTHS_BETWEEN(날짜1, 날짜2) FROM DUAL;

값 계산 방식 : 날짜 1 - 날짜2

ex) SELECT MONTHS_BETWEEN('20240311', '20240101') FROM DUAL;

ex) SELECT MONTHS_BETWEEN( '20240101' , '20240311') FROM DUAL;

 

 

 

728x90
반응형
728x90
반응형

 

Oracle LISTAGG 함수 사용방법

 

 

 특정 컬럼의 N개 이상의 행을 합쳐서 리스트형식의 하나의 행으로 보여주기(11g R2버전 추가된 함수 - LISTAGG)

 

한개의 테이블에서 특정컬럼 N개행 1개의 행으로 보여주기

SELECT LISTAGG(컬럼명, '구분자') WITHIN GROUP(ORDER BY 컬럼명) FROM 테이블명;

 

 

여러개의 테이블에서 합친 후 특정컬럼 N개행 1개의 행으로 보여주기

WITH 테이블명 AS ( 

 SELECT 컬럼명 FROM 테이블명 

 UNION ALL

 SELECT 컬럼명 FROM  테이블명

 )

SELECT LISTAGG(컬럼명, '구분자') WITHIN GROUP (ORDER BY 컬럼명) FROM 테이블명;

 

 

 

728x90
반응형

+ Recent posts