2

複雑な数式の評価が必要なストアド プロシージャがあります。数式があり、このストアド プロシージャはその値を評価します。

以下のように定義された UDF を呼び出します。

ALTER FUNCTION [dbo].[udfComputeMath]
    (@inputString [NVARCHAR](MAX))
RETURNS [NVARCHAR](4000) 
WITH EXECUTE AS CALLER
AS 
EXTERNAL NAME [SMP_Assembly].[SuperMathParser.MathParser].[ComputeMath] 

これはかなり古いコードです。SQL Server 2008 R2 (少なくとも) 以降、2016 年までは問題なく動作していました。

ただし、DB を SQL Server 2017 に更新しようとしましたが、これは機能しなくなりました。

次のエラーが表示されます。

メッセージ 10314、レベル 16、状態 11、プロシージャ GetPermitTypeFeesByPermitID、行 88 [バッチ開始行 0]
アセンブリ ID 65536 を読み込もうとしているときに、Microsoft .NET Framework でエラーが発生しました。サーバーのリソースが不足しているか、アセンブリが信頼されません。クエリを再度実行するか、ドキュメントを確認して、アセンブリの信頼の問題を解決する方法を確認してください。このエラーの詳細については、次を参照してください。

System.IO.FileLoadException: ファイルまたはアセンブリ 'supermathparser、Version=0.0.0.0、Culture=neutral、PublicKeyToken=null' またはその依存関係の 1 つを読み込めませんでした。セキュリティに関するエラーが発生しました。(HRESULT からの例外: 0x8013150A) System.IO.FileLoadException:

System.Reflection.RuntimeAssembly._nLoad (AssemblyName fileName、文字列 codeBase、証拠 assemblySecurity、RuntimeAssembly locationHint、StackCrawlMark& stackMark、IntPtr pPrivHostBinder、ブール値 throwOnFileNotFound、ブール値 forIntrospection、ブール値を抑制する SecurityChecks) で

System.Reflection.RuntimeAssembly.InternalLoadAssemblyName (AssemblyName assemblyRef、証拠 assemblySecurity、RuntimeAssembly reqAssembly、StackCrawlMark& stackMark、IntPtr pPrivHostBinder、ブール値 throwOnFileNotFound、ブール値 forIntrospection、ブール値を抑制する SecurityChecks) で

System.Reflection.RuntimeAssembly.InternalLoad (文字列 assemblyString、証拠 assemblySecurity、StackCrawlMark & stackMark、IntPtr pPrivHostBinder、Boolean forIntrospection) で

System.Reflection.RuntimeAssembly.InternalLoad (文字列 assemblyString、証拠 assemblySecurity、StackCrawlMark& stackMark、Boolean forIntrospection) で System.Reflection.Assembly.Load (文字列 assemblyString)

SQL Server 2017でこれを再び機能させる方法はありますか?

ありがとうございました

4

2 に答える 2