如何在Python中使用varbinary解析本机格式的BCP输出文件

问题描述

我有一个sql Server表,其列类型为X的列varbinary(max)。它存储XML字符串的GZIP输出。我可以将列记录导出为Windows Native格式的BCP文件,如下所示:

bcp "select top 5 X from mytable" -N foo.bcp

我有很多记录。 PYODBC比BCP慢100倍,因此,我没有尝试直接将二进制文件查询到Python中,而是尝试将BCP它们打包成一个平面文件

我知道sql Server 2016+中有一个DECOMPRESS函数,但是很遗憾,我仅限于不具有此功能sql Server 2014。因此,在我看来,在BCP之前在服务器端使用DECOMPRESS是不可行的。我必须将数据从本机格式文件提取到Python中,然后解压缩。

问题:如何在Python 3中作为文件类型二进制对象B文件中分别提取5行,以便可以使用

将它们解压缩为Unicode。
gzip.decompress(B).decode('utf-8')

注意:我不是要先退出BCP,然后再重新进入BCP。我正在尝试使用Python从本机编码的BCP文件提取varbinary记录。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)