목록전체 글 (71)
IT'S YU
REGEXP_REPLACE(REGEXP_REPLACE( 대상컬럼, '[[:punct:]]',''), '[[:space:]]'.'') [[:punct:]] : 특수문자 제거 [[:space:]] : 공백 제거. [[:blank:]]를 써도 무관한듯
정규식을 잘 사용하면 SQL과 각 종 프로그램의 연산속도를 감소시키며 프로그램을 단순화 시킬 수 있습니다. 시간이 걸리더라도 한번씩 사용해보면 좋습니다. . 하나의 문자를 의미합니다. ".*"하면 한개이상의 문자 즉 모든 문자를 의미합니다. $ 끝을 의미한다. AAA$ 하면 AAA로 끝나는 것을 의미한다. \ 특수 문자를 문자로 인식할때 사용합니다. ¦ 여러 식 중에서 하나를 선택합니다. SQL의 OR조건과 같습니다. "abc¦adc"는 abc와 adc 문자열을 모두 포함한다. ^ 문자 클래스 안의 문자를 제외한 나머지를 선택한다. 예를 들면 [^abc]d는 ad, bd, cd는 포함하지 않습니다. [^a-z]는 알파벳 소문자로 시작하지 않는 모든 문자를 의미한다. [] "["과 "]" 사이의 문자 중 ..
공백문자 제거 REPLACE(대상컬럼, ' ','') 또는 TRIM(대상컬럼) --대상 문자의 앞 뒤 공백 제거 엔터값 제거 REPLACE(REPLACE(대상컬럼, CHAR(13), ''), CHR(10), '') WITH TEST AS ( SELECT 'Google' || CHR(13)||CHR(10) || 'Store' NM FROM DUAL ) SELECT A.NM , REPLACE(REPLACE(A.NM, CHR(13), ''), CHR(10), '') RE_NM FROM TEST A [Oracle] 문자열 변환 (REPLACE 함수) 엔터, 탭 제거 - 엔터값을 제거하기 위해서는 replace함수를 두번 사용해야 정확히 제거된다. - 윈도우에서 엔터값은 chr(13)chr(10)이며 리눅스에서 ..
* ORA-01489: 문자열 연결의 결과가 너무 깁니다 : LISTAGG 실행 결과가 VARCHAR2(4000)를 초과하였을 때 발생하는 에러 XMLAGG(XMLELEMENT(COL ,'|', 대상컬럼명) ORDER BY 정렬대상컬럼명).EXTRACT('//text()' ).GETCLOBVAL() XMLAGG 끝부분에 GETCLOBAL()로 써주면 연결 결과가 4000BYTE넘어도 정상적으로 출력 가능함 XMLAGG 실행결과 : 맨 앞에도 연결자 '|' 가 붙어서 나옴 -> SUBSTR(XMLAGG결과,2) 로 잘라준다.