DB에서 쿼리를 인쇄하는 코드가 있습니다. Varchar, int 및 다른 형식의 값을 표시하는 데 문제가 없습니다. 그러나 Byteary의 값은 다릅니다. DB를의 값은 내가 인터넷에서 읽은 내용을 바탕으로pyodbc 이진 열이 홀수 문자를 반환합니다 파이썬
b'\x03\x80\x03\x8c\x00\x03\x00S^k\xdb' //not actual value
가하는 conn.add_output_converter(pyodbc.SQL_BINARY, hexToString)
있지만 작동하지 않는 존재처럼 pyodbc 버전에서입니다 0xA09080BD1160AB16
같은 있지만, 파이썬의 인쇄의 결과입니다 4.0.18
import pyodbc
def hexToString(binaryString):
try:
hashString = ["{0:0>2}".format(hex(b)[2:],upper()) for b in binaryString]
return '0x' + "".join(hashString)
except:
return binaryString
query = """ select * from myDb.TestDb """
conn_str = (
r'Driver={ODBC Driver 13 for SQL Server};'
r'Server=yourserver\test;'
r'Database=test;'
r'Trusted_Connection=yes;'
r'CHARSET=UTF8;'
)
cnxn = pyodbc.connect(conn_str)
cnxn.add_output_converter(pyodbc.SQL_BINARY, hexToString)
cursor = cnxn.cursor()
try:
cursor.execute(query)
row = cursor.fetchone()
except MySQLdb.error as err:
print(err)
else:
while row is not None:
print(row)
row = cursor.fetchone()
이진 데이터를 보유하는 T-SQL 열 유형은 무엇입니까? 바이너리? 변종인가요? 다른 것 ? –
해당 이진수 (8), null – Led
출력 변환기 기능없이 [this code] (https://pastebin.com/FNNh7RhY)를 실행하면 어떻게됩니까? 나는'b '\ xa0 \ x90 \ x80 \ xbd \ x11 \'\ xab \ x16'을 얻는다. –