SQL 服务器将base64数据转换成文件
SQL server to convert base64 data into a file
场景:
- 我将 pdf 文件转换为 base64 并将其放入 xml,然后
问题:
- 当我收到 xml 时,我必须将这个 base64 数据转换回来
使用 SQL 服务器到原始 pdf 文件并将其存储在某个地方。
我
找到 this link 但不知道如何去做。
这是
我有什么:
DECLARE
@SQLcommand VARCHAR(8000),
@MyOriginalFile VARCHAR(8000),
@RawData VARCHAR(8000)
SET @RawData = 'JVBERi0x etc'
SET @SQLcommand = 'bcp "SELECT @MyOriginalFile = @RawData" queryout "\MY-SERVER\MySharedFolder\New.pdf" -T -n -S A70195\dev'
EXEC xp_cmdshell @SQLcommand
- 我想我需要了解 -T -n -S A70195\dev 是什么意思。
有人可以帮忙吗?
谢谢。
从 SQL2005 开始,我将对 PDF 内容使用 VARBINARY(MAX)
数据类型,并使用 FOR XML ... , BINARY BASE 64
将二进制值转换为 BASE64
:
-- VarBinary -> XML
DECLARE @PdfContent VARBINARY(MAX)
SET @PdfContent = 0x12345678
SELECT @PdfContent AS BinaryContent
FOR XML RAW, BINARY BASE64
-- Output <row BinaryContent="EjRWeA==" />
-- XML -> VarBinary
DECLARE @PdfContentAsXML XML
SET @PdfContentAsXML = N'<row BinaryContent="EjRWeA==" />'
SELECT x.XmlCol.value('(@BinaryContent)', 'VARBINARY(MAX)') AS BinaryContentFromXml
FROM @PdfContentAsXML.nodes('row') x(XmlCol)
-- Output 0x12345678
场景:
- 我将 pdf 文件转换为 base64 并将其放入 xml,然后
问题:
- 当我收到 xml 时,我必须将这个 base64 数据转换回来 使用 SQL 服务器到原始 pdf 文件并将其存储在某个地方。
我
找到 this link 但不知道如何去做。
这是
我有什么:
DECLARE
@SQLcommand VARCHAR(8000),
@MyOriginalFile VARCHAR(8000),
@RawData VARCHAR(8000)
SET @RawData = 'JVBERi0x etc'
SET @SQLcommand = 'bcp "SELECT @MyOriginalFile = @RawData" queryout "\MY-SERVER\MySharedFolder\New.pdf" -T -n -S A70195\dev'
EXEC xp_cmdshell @SQLcommand
- 我想我需要了解 -T -n -S A70195\dev 是什么意思。
有人可以帮忙吗?
谢谢。
从 SQL2005 开始,我将对 PDF 内容使用 VARBINARY(MAX)
数据类型,并使用 FOR XML ... , BINARY BASE 64
将二进制值转换为 BASE64
:
-- VarBinary -> XML
DECLARE @PdfContent VARBINARY(MAX)
SET @PdfContent = 0x12345678
SELECT @PdfContent AS BinaryContent
FOR XML RAW, BINARY BASE64
-- Output <row BinaryContent="EjRWeA==" />
-- XML -> VarBinary
DECLARE @PdfContentAsXML XML
SET @PdfContentAsXML = N'<row BinaryContent="EjRWeA==" />'
SELECT x.XmlCol.value('(@BinaryContent)', 'VARBINARY(MAX)') AS BinaryContentFromXml
FROM @PdfContentAsXML.nodes('row') x(XmlCol)
-- Output 0x12345678