SQL XML 附有 PDF 的输出
SQL XML Output with PDFs Attached
我编写了一个 SQL 服务器程序,它以 XML 格式导出数据。在数据库中,我还有存储为 BLOB 文件的 PDF,我需要将其与数据一起导出。导出时是否可以将它们转换为 PDF?
这真的很简单...
我假设 BLOB 位于类型 VARBINARY(MAX)
的 table 列中。将这样的列包含到 SELECT ... FOR XML PATH
中将 隐式地 为您进行转换。
在这个例子中,我使用了三个微小的二进制 BLOB,将它们放入一个 XML 变量中并重新读取它们。您的 PDF BLOB 应该没有区别:
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(隐式转换为 base64)
<root>
<myData ID="1">
<Content>AQEBAQEBAQEBAQE=</Content>
</myData>
<myData ID="2">
<Content>EQARABEAEQARABEA</Content>
</myData>
<myData ID="3">
<Content>ERAAERAAERAAERAA</Content>
</myData>
</root>
现在我从 XML
读取数据
SELECT B.value('Content[1]','varbinary(max)') AS BackToVarbinary
FROM @xml.nodes('/root/myData') AS A(B)
结果
BackToVarbinary
0x0101010101010101010101
0x110011001100110011001100
0x111000111000111000111000
我编写了一个 SQL 服务器程序,它以 XML 格式导出数据。在数据库中,我还有存储为 BLOB 文件的 PDF,我需要将其与数据一起导出。导出时是否可以将它们转换为 PDF?
这真的很简单...
我假设 BLOB 位于类型 VARBINARY(MAX)
的 table 列中。将这样的列包含到 SELECT ... FOR XML PATH
中将 隐式地 为您进行转换。
在这个例子中,我使用了三个微小的二进制 BLOB,将它们放入一个 XML 变量中并重新读取它们。您的 PDF BLOB 应该没有区别:
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(隐式转换为 base64)
<root>
<myData ID="1">
<Content>AQEBAQEBAQEBAQE=</Content>
</myData>
<myData ID="2">
<Content>EQARABEAEQARABEA</Content>
</myData>
<myData ID="3">
<Content>ERAAERAAERAAERAA</Content>
</myData>
</root>
现在我从 XML
读取数据SELECT B.value('Content[1]','varbinary(max)') AS BackToVarbinary
FROM @xml.nodes('/root/myData') AS A(B)
结果
BackToVarbinary
0x0101010101010101010101
0x110011001100110011001100
0x111000111000111000111000