別のストアドプロシージャからのストアドプロシージャの出力値を表形式で取得する方法

私は 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_Base64エンコード

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行以上のアイテムになることがあります。そのような時代には、出力を表形式で作成するのに時間がかかることがあります。 質問を見て、私に解決策を提供してくれてありがとう。

0
あなたは、単一の入力を受け取り、それを格納されたprocに送り、実行した後、base64を返す関数を作成することができますか?パフォーマンスにはあまり効果がないかもしれませんが、呼び出すのが簡単です
追加された 著者 Twelfth,

1 答え

base64文字列を生成するprocをスカラー値関数に変換できない場合は、何もできませんが、行を繰り返して値を生成してください

0
追加された