2017-10-05 4 views
0

SQL Server에서 hbase로 blob로 pdfs를 이동하려고합니다. pypyodbc를 사용하여 blob을 검색하면 형식이 변환됩니다. SQL 서버에서 그것은Python이 SQL Server에서 Blob을 변환하지 못하도록

처럼 0x255044462D312E

을 보이지만 내가 pypyodbc와 유닉스 서버에 당기 때

%의 PDF-1.5 %로 변환되는 ▒▒▒▒

이 문제를 방지하고 바이너리가 원래 형식을 유지하도록하는 방법이 있습니까?

pypy 호출은 다음과 같습니다

sql_conn = pypyodbc.connect("DRIVER={ODBC Driver 13 for SQL Server};SERVER="+server+";UID="+user+";PWD="+passwrd+";DATABASE=DB") 
cursor = sql_conn.cursor() 
cursor.execute("SELECT Id,IMG_DESCRIPTION,binary FROM [DB].[dbo].[DB] WHERE Id IN "+join_list) 
return cursor.fetchall() 

업데이트 :

그것은 라틴어-1 디코딩 그러나 나는 시도하고 이동할 때, 그는 파이썬에 의해 인코딩되는 SQL 서버처럼 보인다. ascii는 파이썬 기본값입니다. 이 일이 일어나지 않도록 방지하거나 다시 인코딩해야합니다.

답변

0

이 문제에 대한 해결책을 찾았으며 공유 할 것으로 생각했습니다.

길 파이썬 2.7이 빌드되면 아스키 (ascii)에서 볼 수있는 바이너리 문자열을 변환하여 도움을 얻으 려합니다. 이러한 일이 일어나지 않도록하려면 변환을 막기 위해 필드를 SQL 자체의 문자열로 변환 할 수 있습니다. 시작시 '0x'를 잘라서 이진 문자열로 인식하지 않도록 할 수도 있습니다.

내 고정 전화

cursor.execute("SELECT Id,IMG_DESCRIPTION,convert(varchar(max),binary,2) FROM [DB].[dbo].[DB] WHERE Id IN "+join_list)