반응형
Oracle PL/SQL : 문자열에서 "공백 문자" 제거
Oracle 10g 데이터베이스에서 테이블 필드의 값에서 "공백 문자"(공백, 탭, 캐리지 리턴 등)를 제거하려고 합니다.
아이즈TRANSLATE()
가는 길?예를 들어 다음과 같은 것이 있습니다.
MY_VALUE := TRANSLATE(MY_VALUE,
CHR(9) || CHR(10) || CHR(11) || CHR(12) || CHR(13) || ' ', '');
아니면 더 나은 대안이 있을까요?[:space:]
PHP PCRE에서)?
조언을 해주셔서 감사합니다.
저는 regexp_replace를 원하지만 PL/SQL에서 사용할 수 있는지 100% 확신할 수는 없습니다.
my_value := regexp_replace(my_value, '[[:space:]]*','');
단축 버전:
REGEXP_REPLACE( my_value, '[[:space:]]', '' )
다음과 같습니다.
REGEXP_REPLACE( my_value, '\s')
위의 두 문 모두 "null" 문자를 제거하지 않습니다.
문을 대체하여 "null"을 제거하려면 다음과 같이 하십시오.
이와 같은 경우:
REPLACE(REGEXP_REPLACE( my_value, '\s'), CHR(0))
정규식에 익숙하기 때문에 REGEXP_REPLACE 함수를 사용하는 것이 좋습니다.[:space:] POSIX 클래스와 일치하는 항목을 제거하려는 경우
REGEXP_REPLACE( my_value, '[[:space:]]', '' )
SQL> ed
Wrote file afiedt.buf
1 select '|' ||
2 regexp_replace( 'foo ' || chr(9), '[[:space:]]', '' ) ||
3 '|'
4* from dual
SQL> /
'|'||
-----
|foo|
모든 연속 공백 문자 집합에 대해 하나의 공백을 남겨두려면 다음을 추가합니다.+
정규식에 사용하고 공백을 대체 문자로 사용합니다.
with x as (
select 'abc 123 234 5' str
from dual
)
select regexp_replace( str, '[[:space:]]+', ' ' )
from x
select regexp_replace('This is a test ' || chr(9) || ' foo ', '[[:space:]]', '') from dual;
REGEXP_REPLACE
--------------
Thisisatestfoo
하나 이상의 공백 문자를 하나의 공백으로 바꾸려면 사용해야 합니다.{2,}
대신에*
그렇지 않으면 당신은insert
공백이 아닌 모든 문자 사이의 공백
REGEXP_REPLACE( my_value, '[[:space:]]{2,}', ' ' )
사용할 수 있는 공백을 제거하려면 다음과 같이 하십시오.
myValue := replace(replace(replace(replace(replace(replace(myValue, chr(32)), chr(9)), chr(10)), chr(11)), chr(12)), chr(13));
예: 표의 모든 공백 제거:
update myTable t
set t.myValue = replace(replace(replace(replace(replace(replace(t.myValue, chr(32)), chr(9)), chr(10)), chr(11)), chr(12)), chr(13))
where
length(t.myValue) > length(replace(replace(replace(replace(replace(replace(t.myValue, chr(32)), chr(9)), chr(10)), chr(11)), chr(12)), chr(13)));
또는
update myTable t
set t.myValue = replace(replace(replace(replace(replace(replace(t.myValue, chr(32)), chr(9)), chr(10)), chr(11)), chr(12)), chr(13))
where
t.myValue like '% %'
언급URL : https://stackoverflow.com/questions/5505835/oracle-pl-sql-remove-space-characters-from-a-string
반응형
'programing' 카테고리의 다른 글
파이썬 다중 처리 풀 imap_unordered 호출의 진행 상황을 표시하시겠습니까? (0) | 2023.07.19 |
---|---|
Windows 7 시스템의 MongoDB:연결할 수 없습니다. (0) | 2023.07.09 |
MongoDB에서 배열에 포함된 개체 필드를 어떻게 인덱싱합니까? (0) | 2023.07.09 |
UITableViewCell의 기본 높이는 얼마입니까? (0) | 2023.07.09 |
미발견(약속)유형 오류: vuex에서 null('시작' 읽기) vue 3의 속성을 읽을 수 없습니다. (0) | 2023.07.09 |