【发布时间】:2023-03-04 04:14:01
【问题描述】:
我有一个包含以下数据的表格,其中包含 itemID 和 Imagepath(s)
tableImagePath
ItemID frontimage backimage
--------- ---------------------------------- ---------------------------------
772740509 2011\11\24\1\8014681_5_1_FRONT.tif 2011\11\24\1\8014681_5_1_BACK.tif
772740508 2011\11\24\1\8014680_4_1_FRONT.tif 2011\11\24\1\8014680_4_1_BACK.tif
772740507 2011\11\24\1\8014679_3_1_FRONT.tif 2011\11\24\1\8014679_3_1_BACK.tif
772740506 2011\11\24\1\8014678_2_1_FRONT.tif 2011\11\24\1\8014678_2_1_BACK.tif
772740505 2011\11\24\1\8014677_1_1_FRONT.tif 2011\11\24\1\8014677_1_1_BACK.tif
772740504 2011\11\24\1\8014676_5_1_FRONT.tif 2011\11\24\1\8014676_5_1_BACK.tif
772740503 2011\11\24\1\8014675_4_1_FRONT.tif 2011\11\24\1\8014675_4_1_BACK.tif
772740502 2011\11\24\1\8014674_3_1_FRONT.tif 2011\11\24\1\8014674_3_1_BACK.tif
772740501 2011\11\24\1\8014673_2_1_FRONT.tif 2011\11\24\1\8014673_2_1_BACK.tif
772740500 2011\11\24\1\8014672_1_1_FRONT.tif 2011\11\24\1\8014672_1_1_BACK.tif
我有一个存储过程,它以 base64 编码生成图像的输出(来自上面的图像路径)。
declare @base64image as varchar(max)
exec dbo.prIMGCLR_ReadImage_Base64 '2011\11\24\1\8014681_5_1_FRONT.tif', @base64image out
select @base64image
返回如下所示的输出:
SUkqAAgAAAATAP4ABAABAAAAKwIAAAIBAwABAAAAAQA+gAAABwBAwABAAAAAQAAACIAAAAAQAAAMgAAAABAAAA....
注意:dbo.prIMGCLR_ReadImage_Base64 存储过程实际上是被锁定的,我无法打开源代码查看里面的内容。
所以我只能使用这个过程,我没有其他函数可以返回 base64 编码的值。
现在,如果我使用相同的过程来获取 FrontImage 和 BackImage 的 base64 编码值,输出应该如下所示...
tableImage_Base64Encoded
772740509 SUkqAAgAAAATAP4ABAABAAAAKwIAAAIBAwABAAAAAQA+gAAABwBAwABAAAAAQAAACIAAAAAQAAAMgAAAABAAAA... SUkqAAgAAAATAP4ABAABAAAAKwIAAAIBAwABAAAAAQA+gAAABwBAwABAAAAAQAAACIAAAAAQAAAMgAAAABAAAA...
772740508 SUkqAAgAAAATAP4ABAABAAAAKwIAAAIBAwABAAAAAQA+gAAABwBAwABAAAAAQAAACIAAAAAQAAAMgAAAABAAAA... SUkqAAgAAAATAP4ABAABAAAAKwIAAAIBAwABAAAAAQA+gAAABwBAwABAAAAAQAAACIAAAAAQAAAMgAAAABAAAA...
772740507 SUkqAAgAAAATAP4ABAABAAAAKwIAAAIBAwABAAAAAQA+gAAABwBAwABAAAAAQAAACIAAAAAQAAAMgAAAABAAAA... SUkqAAgAAAATAP4ABAABAAAAKwIAAAIBAwABAAAAAQA+gAAABwBAwABAAAAAQAAACIAAAAAQAAAMgAAAABAAAA...
772740506 SUkqAAgAAAATAP4ABAABAAAAKwIAAAIBAwABAAAAAQA+gAAABwBAwABAAAAAQAAACIAAAAAQAAAMgAAAABAAAA... SUkqAAgAAAATAP4ABAABAAAAKwIAAAIBAwABAAAAAQA+gAAABwBAwABAAAAAQAAACIAAAAAQAAAMgAAAABAAAA...
772740505 SUkqAAgAAAATAP4ABAABAAAAKwIAAAIBAwABAAAAAQA+gAAABwBAwABAAAAAQAAACIAAAAAQAAAMgAAAABAAAA... SUkqAAgAAAATAP4ABAABAAAAKwIAAAIBAwABAAAAAQA+gAAABwBAwABAAAAAQAAACIAAAAAQAAAMgAAAABAAAA...
772740504 SUkqAAgAAAATAP4ABAABAAAAKwIAAAIBAwABAAAAAQA+gAAABwBAwABAAAAAQAAACIAAAAAQAAAMgAAAABAAAA... SUkqAAgAAAATAP4ABAABAAAAKwIAAAIBAwABAAAAAQA+gAAABwBAwABAAAAAQAAACIAAAAAQAAAMgAAAABAAAA...
772740503 SUkqAAgAAAATAP4ABAABAAAAKwIAAAIBAwABAAAAAQA+gAAABwBAwABAAAAAQAAACIAAAAAQAAAMgAAAABAAAA... SUkqAAgAAAATAP4ABAABAAAAKwIAAAIBAwABAAAAAQA+gAAABwBAwABAAAAAQAAACIAAAAAQAAAMgAAAABAAAA...
772740502 SUkqAAgAAAATAP4ABAABAAAAKwIAAAIBAwABAAAAAQA+gAAABwBAwABAAAAAQAAACIAAAAAQAAAMgAAAABAAAA... SUkqAAgAAAATAP4ABAABAAAAKwIAAAIBAwABAAAAAQA+gAAABwBAwABAAAAAQAAACIAAAAAQAAAMgAAAABAAAA...
772740501 SUkqAAgAAAATAP4ABAABAAAAKwIAAAIBAwABAAAAAQA+gAAABwBAwABAAAAAQAAACIAAAAAQAAAMgAAAABAAAA... SUkqAAgAAAATAP4ABAABAAAAKwIAAAIBAwABAAAAAQA+gAAABwBAwABAAAAAQAAACIAAAAAQAAAMgAAAABAAAA...
772740500 SUkqAAgAAAATAP4ABAABAAAAKwIAAAIBAwABAAAAAQA+gAAABwBAwABAAAAAQAAACIAAAAAQAAAMgAAAABAAAA... SUkqAAgAAAATAP4ABAABAAAAKwIAAAIBAwABAAAAAQA+gAAABwBAwABAAAAAQAAACIAAAAAQAAAMgAAAABAAAA...
请有人帮助我以良好的性能方式完成这项工作。而不是遍历每一个来产生结果。 有时这可能会超过 1000 行项目。因此,以表格形式生成输出可能需要很长时间。 感谢您查看问题并为我提供解决方案。
【问题讨论】:
-
您是否有机会创建一个接受单个输入的函数,将其输入存储过程并执行,然后返回 base64?可能对性能影响不大,但更容易调用
标签: sql-server sql-server-2005 sql-server-2008 tsql