database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 21072 게시물 읽기
No. 21072
문자와 문자사이 공백 삭제 문의
작성자
열혈남아
작성일
2004-12-15 18:22
조회수
6,682

데이타는 이런식으로 입력되어 있습니다...다른 시스템에서 올려서 전환 한건데요...

김 수겸
최 희민
이 현아
김 범호
윤 봉하
윤 봉하
윤 봉하
윤 봉하
최 효민
김 광산
차 영환
손 진영
이동원

varchar2 type 이구요..저거를 마지막 데이타 이동원 같이 성명이 공백없이 주루룩 왼쪽부터 들어가게 만들고 싶은데요

자릿수는 14자리 입니다.

성과 이름 사이 공백을 지우고 업데이트 하고 싶은데요...잘 되지 않아서 replace도 해 봤는데 trim도 잘 안되고...

 

이 글에 대한 댓글이 총 9건 있습니다.

아래처럼 ' ' 공백을 ''로 replace하시면 될 듯 합니다.

 

SELECT REPLACE (이름, ' ', '')  FROM 테이블

 

update 테이블 set 이름 = REPLACE (이름, ' ', '')

김주현님이 2004-12-15 18:29에 작성한 댓글입니다.
이 댓글은 2004-12-15 18:31에 마지막으로 수정되었습니다. Edit

컬럼명을 쓰는게 아니라 실제 데이타 이름을 써야 합니까?

그럼 많은 데이타를 일일이 칠려면...ㅡ.ㅡ

select repalce(a.성명,' ','') from 공통_사원정보 a

이렇게 해보았는데 똑 같이 공백이 성과 이름사이에 나오는데요

내가 이해를 못하나요?

열혈남아님이 2004-12-15 18:38에 작성한 댓글입니다. Edit

컬럼명을 적어야죠.... ㅡㅡ;

 

 

김주현님이 2004-12-15 22:23에 작성한 댓글입니다. Edit

글을 보니 replace 를 하셨는데도 변함이 없다고 한다면..

혹시 이름사이의 공백이 전각문자가 아닌지 의심이 됩니다..

전각문자 space라면 replace 하실때 바꿔줄 문자열에 ' ' 를 써보세요.. select 된 결과에 나타난 값을 copy 해보셔도 되고..

 

woos님이 2004-12-15 22:43에 작성한 댓글입니다. Edit

원인을 파악 했습니다..

IBM AS/400에 있는 데이타를 전환한건데

현재 SELECT를 해보면 이렇게 나옵니다..

 

select 사원번호,사원일련번호,최종대상여부,부서코드,성명,
replace(성명,' ','1') 공백열,lengthb(replace(성명,' ','')) 길이
from 공통_사원정보b
where 사원일련번호 =999

 

사번      사일 최 부서      성명              공백열                      길이

020059   999   1  29071  김 완겸     김 완겸  11         12
107486   999   1  19214  최영미        최영미  11            10

공백열을 1 로 바꿔 보니까 위와 같이 나오는데...

1로 바뀐 부분만 공백이라고 생각되네요...

 

김완겸 같은경우는 성과 이름사이가 공백아닌 전각문자 공백같군요.

그리고 11전까지 공백도 전각문자 공백 같구요..

그래서 공백을 없애려고 해도 저기 공백 11로 바꾼 부분만 없어지네요.

전각문자 공백을 없애려면 어또케 할까요...

하나하나 바꿀수 밖에 없낭? 문제군요...

무슨 조은 방법없을까요?

열혈남아님이 2004-12-16 11:25에 작성한 댓글입니다.
이 댓글은 2004-12-16 11:28에 마지막으로 수정되었습니다. Edit

replace(replace(a.성명, ' ', ''), ' ', '') 하시면 되지 않나요?

woos님이 2004-12-16 14:34에 작성한 댓글입니다. Edit

wood님 그렇게 해도 안되네요...

아마 11부분만 공백으로 인식되나봐요...

전(as/400) 시스템 db에서 성명을 입력할때

그냥 원바이트 스페이스는 공백으로 되는것 같은데....

투 바이트 문자 공백으로 넣어져 있는것은 데이타를 전환하니까...

그값은 오라클에서 공백으로 인식 안되나 봐요...에혀

하나하나 바꿔야겠네여머ㅠ.ㅠ 요즘에 누가 성하고 이름띄운다고

저렇게 입력했을거나...

열혈남아님이 2004-12-16 14:48에 작성한 댓글입니다. Edit

oracle 버전이 지원된다면 아래와 같이 해 보세요..

 

replace(to_single_byte(a.성명), ' ' , '')

 

to_single_byte 함수를 거치게 되면 전각공백도 일반 1 byte계 공백으로 변환이 될것으로 봅니다.

 

만약 위의 방법으로도 처리가 안된다면 위의 이름 사이에 떨어져 보이는 값은 실제로 '전각공백' 도 아닌 다른 문자가 깨져 보이는 현상일것 같습니다.. (제 경험으로는 일본어 '외자' 같은 경우는 실제 뭔가 코드값이 있지만 깨져서 조회했을때는 '전각공백' 과 같이 보이지만 '전각공백'은 아닌 케이스)

woos님이 2004-12-16 15:42에 작성한 댓글입니다. Edit

wood님이 아니라 woos님이 었군요 지송합니다...

고수님으로 인정합니다...저런 함수도 있었군요...

제가 좀 허접해서...

select 해보니까 정상적으로 붙여 지는군요 ^^ 길이도 6으로 나오고

update 까지 실행 해 보았습니다 아주 좋습니다.

그리고 참고로..

박상준A, 박상준B 라는 사원이 있는데 이 사원은

A,B가 투바이트 문자 였는데 1byte A,B로 들어가는군요.

머 이건 전혀 문제가 되지 않으니까..~~

아무튼 바쁘신데도 허접한 저의 물음에 성의껏 답변해 주셔서

넘 감사합니다...꾸벅 ^^; 福 받으세요...

열혈남아님이 2004-12-16 16:23에 작성한 댓글입니다.
이 댓글은 2004-12-16 16:26에 마지막으로 수정되었습니다. Edit
[Top]
No.
제목
작성자
작성일
조회
21075sid계정에 질문 [1]
^^
2004-12-16
2234
21074standby DB에 파일백업 문의.. [1]
고민
2004-12-15
1510
21073proc 파일 업로드 방법 [1]
입문
2004-12-15
1383
21072문자와 문자사이 공백 삭제 문의 [9]
열혈남아
2004-12-15
6682
21071sql*loader 관련 [1]
궁금이
2004-12-15
2227
21070Oracle 7.3.2.2.1 클라이언트 설치가 안됩니다.(읽어주세요 [3]
kami
2004-12-15
1591
21069SQL PLUS접속시 애러가납니다. [3]
kami
2004-12-15
1790
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.019초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다