SELECT 문으로 봤을때 462 라고만 나오고
REPLACE(컬럼,' ', '') 또는 LTRIM,RTRIM을 사용해도
제대로 제거되지 않는 공백이 포함되어 있는 데이터의
ASCII 코드를 살펴보니 아래와 같은 데이터들이 포함.
SET TEXTSIZE 0
SET NOCOUNT ON
DECLARE @position int, @string char(15)
SET @position = 1
SET @string = (select TESTCOL from TESTTBL where ~~~ )
WHILE @position <= DATALENGTH(@string)
BEGIN
SELECT ASCII(SUBSTRING(@string, @position, 1)),
CHAR(ASCII(SUBSTRING(@string, @position, 1)))
SET @position = @position + 1
END
SET NOCOUNT OFF
GO
-- 결과 --------
----------- ----
52 4
----------- ----
54 6
----------- ----
50 2
----------- ----
9
----------- ----
32
----------- ----
32
----------- ----
32
----------- ----
32
오라클에서 SQL Server로 이관한 데이터에 종종 애매한 공백들이 포함되어 있다.
CHAR(32)는 REPLACE나 TRIM으로 처리가 가능한 Space.
CHAR(9)는 TRIM으로 처리가 되지 않으며 REPLACE(컬럼, CHAR(9), '') 와 같은 방법으로 처리.
char(9)인 공백이 컬럼에 포함됐을 경우 SSAS에서 차원처리시 중복에러를 내기도 한다.
댓글 없음:
댓글 쓰기