2016-06-17 15 views
0

データをXML形式でエクスポートするSQL Serverプロシージャーがあります。データベースには、データをエクスポートするために必要なBLOBファイルとして保存されているPDFもあります。エクスポートするときにこれらをPDFに変換することは可能ですか?PDF付きSQL XML出力添付

+0

BLをエクスポートしますか? OB列からPDFへ? – mvisser

+0

XMLファイル内でPDFとして書き出したいですか?申し訳ありませんが、それは正しい表現ではありません。 –

+0

[XMLにバイナリデータを埋め込む方法は?](http://stackoverflow.com/a/19904/5690722)[XMLドキュメントのバイナリデータの処理](http://www.xml.com/pub/a/ 98/07/binary/binary.html)[SQL Server 2005 T-SQLのBase64エンコーディング](http://stackoverflow.com/a/8247117/5690722) –

答えて

0

これは本当に簡単です...

私はブロブタイプVARBINARY(MAX)のテーブル列に住んでいることを、前提としています。そのような列をSELECT ... FOR XML PATHに含めると、暗黙的に変換を行います。

この例では、3つの小さなバイナリ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 
関連する問題