【发布时间】:2016-04-18 01:59:33
【问题描述】:
我正在处理SSRS 报告。
我有数据类型为Image 的内容。我想将其转换为plain-text 或XML。有可能吗?
我没有提供样本数据,因为数据量很大。 (整个报告内容保存到图片以便我们理解)
建议我最好的解决方案。
【问题讨论】:
标签: sql-server xml reporting-services sql-server-2012 sql-server-2014
我正在处理SSRS 报告。
我有数据类型为Image 的内容。我想将其转换为plain-text 或XML。有可能吗?
我没有提供样本数据,因为数据量很大。 (整个报告内容保存到图片以便我们理解)
建议我最好的解决方案。
【问题讨论】:
标签: sql-server xml reporting-services sql-server-2012 sql-server-2014
在下面尝试并正常工作,但将额外的字符串附加到输出中,例如 。
使用 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)
【讨论】:
varchar 需要 ASCII。 nvarchar 可能会稍微好一些,但我认为它有望与 UCS-2 一起使用。
NVARCHAR(),但输出仍然相同。
尝试如下,
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
希望对你有帮助
【讨论】:
<?xml v
您可以使用 XML 将图像转换为 base64 字符串 如果你的表名是 Images
select * from Images FOR XML PATH('Images')
输出会是这样的
<Images>
<ImageID>2</ImageID>
<Img>/9j/4TfsRXhpZgAATU0AKgAAAAgACgEPAAIAAAAGAAAAhgEQAAIAAAAKAAAAjAESAAMAAAABAAEAAA</Img>
</Images>
【讨论】:
当当前数据库是 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 声明。
【讨论】: