スレッドがそれ以上の回答を受け取っていないため、この質問のフォローアップとしてこの質問を投稿します。
CLRストアドプロシージャのパラメータとして大量のデータを「0x5352532F...」として渡すことができるかどうかを理解しようとしています。
これは、tiを一時DBフィールドに送信し、そこからvarbinary(max)パラメーターとしてCLRストアード・プロシージャーに渡すのではなく、データをCLRストアード・プロシージャーに直接送信することを回避するためです。
私は三重の質問があります:
1)可能ですか、はいの場合、どのようにですか?PDFファイルをCLRストアドプロシージャに渡したいとしましょう(パスではなく、ファイルを構成する完全なビット)。何かのようなもの:
exec MyCLRStoredProcs.dbo.insertfile
@file_remote_path ='c:\temp\test_file.txt' ,
@file_contents=0x4D5A90000300000004000.... --(this long list is the file content)
ここで、insertfileは、サーバーパス(file_remote_path)に(file_contents)として渡すバイナリデータを書き込むストアドプロシージャです。
2)このアプローチを採用することによる破損のリスクはありますか(またはSQLサーバーが舞台裏で使用するのと同じアプローチです)?
3)ファイルの内容を「0x23423...」16進表現に変換する方法