2017-10-05 1 views
0

Ich versuche, PDFs als Blob von SQL-Server nach HBase zu verschieben. Wenn ich pypyodbc verwende, um den Blob abzurufen, konvertiert er sein Format. In SQL Server sieht es aus wieStoppen Sie Python von der Konvertierung von Blob aus SQL Server

0x255044462D312E

aber wenn ich es in den Unix-Server mit pypyodbc ziehen es

% PDF-1.5 % umgewandelt werden ▒▒▒▒

Gibt es eine Möglichkeit, dies zu verhindern und die ursprüngliche Form der Binärdatei beizubehalten?

PyPy Anruf:

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() 

Update:

Es sieht aus wie in der SQL Server in Latin-1 decodiert, aber wenn ich versuche, und bewegen Sie ihn, seine von Python codiert wird. Es sieht aus wie ascii ist der Python-Standard. Ich muss verhindern, dass dies geschieht oder es zurückkodiere.

Antwort

0

Ich fand eine Abhilfe für dieses Problem und dachte, ich würde teilen.

Sie Weg Python 2.7 ist gebaut, es versucht, hilfreich zu sein, indem Sie jede binäre Zeichenfolge, die es ascii sieht. Um dies zu verhindern, können Sie Ihr Feld selbst in eine Zeichenfolge umwandeln, um die Konvertierung zu verhindern. Sie können auch die '0x' am Anfang abschneiden, um sicherzustellen, dass sie nicht als binäre Zeichenfolge erkannt wird.

Mein fester Anruf

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