문자열 내부의 Oracle 자르기 공백
사용자가 전화 번호 앞에 '+' 문자를 입력할 수 있도록 시스템에 전화 번호를 VARCHAR2로 저장하고 있습니다.
내 정규 표현식은 이것을 완벽하게 허용하지만, 데이터베이스에 숫자를 저장할 때 사용자가 입력할 수 있는 모든 공백을 제거하고 싶습니다.
내 정규 표현식은 다음 형식을 허용합니다.
+4470123456789
+447 0123456789
+447 01234 56789
01234567890
01234 567890
01234 567 890
사용자가 번호에 공백을 넣지 않도록 함으로써 문제를 해결할 수 있다는 것을 알지만, 클라이언트 측의 어리석은 형식 지정으로 인해 유효성 검사 오류가 발생하는 것이 얼마나 답답한지는 개인적인 경험을 통해 알고 있습니다.INSERT/UPDATE 트리거에서 TRIM 기능을 사용해 보았지만, 전방 및 후방 공백으로만 제한된다는 것을 알게 되었습니다. Oracle에서 내부 공백을 제거할 수 있는 다른 기능이 있습니까?아니면 제가 이것을 하기 위해 제 기능을 써야 합니까?
어떤 조언이라도 해주시면 감사하겠습니다.
당신은 해보고 싶어요.replace (telno, ' ', '')
.
더 나은 접근법은 정규식을 사용하여 문자열 내의 모든 공백을 제거하는 것입니다.
SQL> with t as (
select 'AAA BBB CCC' col from dual union
select 'DDDD EEE F' col from dual
)
--
-- actual query:
--
select regexp_replace(col, '[[:space:]]+', chr(32)) col
from t;
COL
AAA BBB CCC DDDDEEF
언급URL : https://stackoverflow.com/questions/21484677/oracle-trim-whitespace-on-the-inside-of-a-string
'programing' 카테고리의 다른 글
.NET Framework 4.0의 TLS 1.2 (0) | 2023.06.29 |
---|---|
열에 있는 다른 워크시트에 Excel 셀이 있는지 확인하고 다른 열의 내용을 반환합니다. (0) | 2023.06.29 |
"object sender" 및 "EventArgue" 매개 변수는 무엇을 사용합니까? (0) | 2023.06.29 |
SQL Server(localdb)\v11.0 설명 (0) | 2023.06.29 |
Vue 2의 모든 탭에서 업데이트될 때 다양한 탭 간에 반응 상태가 동일하게(업데이트되지 않음) 유지되기를 원합니다. (0) | 2023.06.29 |