在SQL Server中将图像类型数据转换为XML /纯文本

时间:2016-01-13 07:34:52

标签: sql-server xml reporting-services sql-server-2012 sql-server-2014

我正在处理<header id="header"> <nav id="nav"> <ul> <li><a href="#slide1">Front</a></li> <li><a href="#slide2">Mastering</a></li> <li><a href="#slide3">Samples</a></li> <li><a href="#slide4">Contact</a></li> </ul> </nav> </header>举报。

我的内容包含数据类型SSRS。我想将其转换为Imageplain-text。有可能吗?

我没有提供样本数据,因为有大量数据。 (整个报告内容保存到图像所以我们可以理解)

建议我最好的解决方案。

4 个答案:

答案 0 :(得分:2)

尝试在下方工作正常,但在此输出附加额外的字符串

使用RIGHT()来删除前3个字符 - 工作正常

SELECT 
RIGHT(CONVERT(VARCHAR(MAX),CONVERT(VARCHAR(MAX),CONVERT(VARBINARY(MAX) ,ImageDataField))),
LEN(CONVERT(VARCHAR(MAX),CONVERT(VARCHAR(MAX),CONVERT(VARBINARY(MAX) ,ImageDataField))))-3)

答案 1 :(得分:0)

尝试以下,

CREATE TABLE #a (id IMAGE )

INSERT INTO #a VALUES('imagedata' )

SELECT CONVERT(IMAGE ,CONVERT(VARCHAR(MAX) ,CONVERT(VARBINARY(MAX) ,ID))) AS  'TEXT TO IMAGE' FROM   #a

SELECT CONVERT(VARCHAR(10),CONVERT(VARCHAR(MAX) ,CONVERT(VARBINARY(MAX) ,ID))) ' IMAGE TO TEXT ' FROM   #a

DROP TABLE #a

希望这有帮助

答案 2 :(得分:0)

您可以使用XML将图像转换为base64字符串 如果你的表名是Images

select * from Images FOR XML PATH('Images')

out put将是这样的

<Images>
  <ImageID>2</ImageID>
  <Img>/9j/4TfsRXhpZgAATU0AKgAAAAgACgEPAAIAAAAGAAAAhgEQAAIAAAAKAAAAjAESAAMAAAABAAEAAA</Img>
</Images>

答案 3 :(得分:0)

当当前数据库是ReportServer数据库时,这适用于SQL Server Management Studio。

-- given a NonRemitted_detail.rdl file that was deployed to a report server on path /Jacket Generator 
-- the contents can be found as XML with this:
SELECT CONVERT(XML, CONVERT(VARBINARY(MAX), Content)) AS rdl_file_content
    FROM ReportServer.dbo.[Catalog]
    WHERE [Path] = N'/Jacket Generator/NonRemitted_detail'

几乎相同。 XML元素之间的空格已被删除。缺少开放的XML声明。