我正在处理SSRS
报告。将图像类型数据转换为SQL Server中的XML /纯文本
我的内容是数据类型Image
。我想将它转换为plain-text
或XML
。可能吗?
我没有提供样本数据,因为有大量数据。 (整个报告内容保存到图像,以便我们可以理解)
建议我最好的解决方案。
我正在处理SSRS
报告。将图像类型数据转换为SQL Server中的XML /纯文本
我的内容是数据类型Image
。我想将它转换为plain-text
或XML
。可能吗?
我没有提供样本数据,因为有大量数据。 (整个报告内容保存到图像,以便我们可以理解)
建议我最好的解决方案。
下面尝试和工作正常,但附加额外字符串这样
输出。
二手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)
尝试如下,
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' – pedram
您可以使用XML 如果你的表名是图片
select * from Images FOR XML PATH('Images')
将图像转换为base64字符串输出将是这样的
<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声明缺失。
这是一个UTF-8 BOM。 'varchar'需要ASCII。 'nvarchar'可能稍好些,但我认为它预计会与UCS-2合作。 –
那我该怎么办?你能帮我么?我尝试通过使用'NVARCHAR()',但仍然相同的输出。 – pedram
没有简单的答案。您已存储UTF-8数据,但SQL Server不理解该编码。这可以通过a)更新存储这些数据的任何代码,以便不发布UTF-8 BOM(毕竟,这是可选的,而不是真正推荐的),然后b)更正现有数据以将其删除。 –