我正在處理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)更正現有數據以將其刪除。 –