我编写了一个以XML格式导出数据的SQL Server程序。在数据库中,我还有PDF存储为BLOB文件,我需要与数据一起导出。我可以在导出时将这些转换为PDF吗?
答案 0 :(得分:0)
这真的很容易......
我假设BLOB存在于group.ix[j, 'Price'] = group.ix[j, 'Price'] * (te_index[i] * weights[i])
类型的表列中。将此类列添加到VARBINARY(MAX)
中会隐式为您执行转换。
在这个例子中,我使用了三个很小的二进制BLOB,将它们放入XML变量并重新读取它们。与您的PDF BLOB应该没有区别:
SELECT ... FOR XML PATH
结果为XML(隐式转换为base64)
DECLARE @tbl TABLE(ID INT,Content VARBINARY(MAX));
INSERT INTO @tbl VALUES
(1,0x101010101010101010101)
,(2,0x110011001100110011001100)
,(3,0x111000111000111000111000);
DECLARE @xml XML=
(
SELECT ID AS [@ID]
,Content
FROM @tbl
FOR XML PATH('myData'),ROOT('root')
);
SELECT @xml;
现在我从XML中读取数据
<root>
<myData ID="1">
<Content>AQEBAQEBAQEBAQE=</Content>
</myData>
<myData ID="2">
<Content>EQARABEAEQARABEA</Content>
</myData>
<myData ID="3">
<Content>ERAAERAAERAAERAA</Content>
</myData>
</root>
结果
SELECT B.value('Content[1]','varbinary(max)') AS BackToVarbinary
FROM @xml.nodes('/root/myData') AS A(B)