Amazon Redshift 데이터에 잘못된 문자가 있습니다. 잘못된 문자를 어떻게 제거합니까?

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

잘못된 문자를 제거하려면 TRANSLATE 함수를 사용하십시오. 다음 예제에서는 null 종결자 "\0"이 빈 값으로 바뀌어 문자열에서 제거됩니다.

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

지정한 잘못된 문자를 테이블의 모든 행에서 제거하려면 다음 예제에 표시된 대로 UPDATE 명령을TRANSLATE 함수와 함께 실행하십시오.  

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 지원 지식 센터로 돌아가기

도움이 필요하십니까? AWS 지원 센터를 방문하십시오.

게시된 날짜: 2018-08-01