python pyodbc二进制列返回 xda x08 xcd x08 xba x08而不是数字



i有一个SQL数据库,该数据库显示一个像此0x9406920691068F这样的varbinary(max)...我想将其导入到Python Pycharm,以获取相同的确切数据类型。但是,它显示出这样的东西[B' x94 x06 x92 x06 x91 x06 x8f x06 x8d ..如何将相同的数字复制到Python?我是Python的初学者,请帮助。

我复制了上一篇文章中的代码,它不起作用

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 P from Access.table """
conn_str = (
      **** private database details # I don't copy on the page
    )
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()

如果列返回类型为 varbinary(max),则需要将输出转换器函数添加到处理SQL_VARBINARY,而不是SQL_BINARY

cnxn.add_output_converter(pyodbc.SQL_VARBINARY, converter_function_name)

相关内容

  • 没有找到相关文章

最新更新