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

최종 업데이트 날짜: 2020년 2월 10일

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)

이 문서가 도움이 되었습니까?

AWS에서 개선해야 할 부분이 있습니까?


도움이 필요하십니까?