Amazon Redshift 데이터에서 잘못된 문자를 제거하려면 어떻게 해야 하나요?

1분 분량
0

Amazon Redshift 데이터에 잘못된 문자가 있습니다. 잘못된 문자를 제거하려면 어떻게 해야 하나요?

간략한 설명

데이터에 null, bell 또는 이스케이프 문자와 같이 인쇄할 수 없는 ASCII 문자가 포함되어 있는 경우 데이터를 검색하거나 Amazon Simple Storage Service(Amazon S3)로 데이터를 언로드하는 데 문제가 있을 수 있습니다. 예를 들어 'abc\0def'와 같이 null 종결자를 포함하는 문자열은 null 종결자에서 잘려서 불완전한 데이터가 생성됩니다.

해결 방법

잘못된 문자를 제거하려면 TRANSLATE 함수를 사용합니다. 다음 예시에서 데이터에는 'abc\u0000def'가 포함됩니다. TRANSLATE 함수는 null 문자 '\u0000'을 제거하고 빈 값으로 바꾼 다음 문자열에서 제거합니다.

admin@testrs=# select a,translate(a,chr(0),'') from invalidstring;
   a    | translate 
--------+-----------
 abc    | abcdef
 abcdef | abcdef
(2 rows)

테이블의 모든 행에서 지정된 잘못된 문자를 제거하려면 다음 예시처럼 TRANSLATE 함수와 함께 UPDATE 명령을 실행합니다.

admin@testrs=# select * from invalidstring;
   a    
--------
 abc
 abcdef
(2 rows)

admin@testrs=# update invalidstring set a=translate(a,chr(0),'') where a ilike '%'||chr(0)||'%';
UPDATE 1
 
admin@testrs=# select * from invalidstring;
   a    
--------
 abcdef
 abcdef
(2 rows)

관련 정보

CHR 함수(CHR Function)

AWS 공식
AWS 공식업데이트됨 2년 전