이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 14199|회답: 0

[출처] HEX와 UNHEX 함수는 mysql에서 이진 데이터의 가져오기 및 내보내기를 처리하는 데 사용됩니다

[링크 복사]
게시됨 2016. 6. 13. 오후 10:27:47 | | |

MySQL 데이터 백업 및 복구 작업에서 문제가 발생했습니다: sqlyog를 사용해 데이터 백업을 한 후 다른 서버에서 데이터를 복구한 후, "'" 구분자가 테이블 중 하나의 varbinary 필드 때문에 소모되어 데이터가 정상적으로 가져올 수 없게 되었습니다.

일부 텍스트 도구도 처리에 사용되었으나 성공하지 못했고, 일부는 인식되었으나 이진 인코딩 데이터를 자동으로 수정했고, 일부는 다른 이진 데이터를 삽입해 여전히 읽을 수 없게 만들었습니다.

다른 방법도 고려해보세요: 데이터를 읽고 SQL 문장을 철자한 뒤 가져오는 식으로요. 구체적인 방법은 다음과 같습니다:

(1) 내보낼 때 HEX 함수를 사용해 데이터를 읽고, 이진 데이터를 16진수 문자열로 변환합니다;

testTable에서 HEX(binField)를 선택;

(2) UNHEX 함수를 사용하여 가져오기 시 16진수 문자열을 이진 데이터 가져오기 데이터베이스로 변환합니다;

testTable에 삽입 binField 값(UNHEX(@hexstr));



다음 코드는 HEX와 UNHEX의 기능을 보여줍니다:

SELECT HEX('이것은 테스트 스트량입니다')이며, 쿼리 결과는 다음과 같습니다: 746869732069732061207465737420737472
SELECT UNHEX('746869732069732061207465737420737472')를 선택하면 쿼리 결과는 다음과 같습니다: 이것은 테스트 스트럿입니다

16진수 문자를 직접 읽을 수도 있으며, 문자열에 0x 접두사를 붙일 수도 있습니다:
SELECT 0x746869732069732061207465737420737472, 쿼리 결과는 다음과 같습니다: 이것은 테스트 스트럿입니다



또한, 이진 가져오기와 내보내기 방식을 사용해 데이터를 백업하고 복원할 수도 있습니다. 여기에는 논의가 없습니다.




이전의:디스쿠즈는 표 데이터가 누락된 pre_forum_post 발견하지 않았습니다
다음:SQL XML 입문 튜토리얼
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com