CLRを呼び出してテーブルを返すストアドプロシージャがあります。現在、1つの文字列を受け付けていますが、複数の配列を受け入れるように配列を更新したいと思います。CLR関数で複数の文字列を受け入れる
は現在、C#関数は次のようになります。
string[]
にパラメータを変更しようとしてい
public static IEnumerable ParseData(System.String data){ ... }
、System.String[]
、IEnumerable
、およびArrayList
すべてが失敗しています。これらのいずれかで構築しようとすると、それがどのような私はつもりはそうのようなSQLで私の関数を呼び出すことができるようにすることです、それは重要な場合
CREATE FUNCTION [dbo].[ParseData] (@data /* Error: Unsupported type. */)
にgenerated.sqlファイルを変更します。
SELECT * FROM clr_parseData((SELECT TOP 10 value FROM table))
のように設定されたデータが生成されますパラメータ(クエリの構文がすべて間違っています)。しかし、CLRはデータセット全体を渡すことをサポートしていません。区切られたリストを渡すことはできますが、あなたが試みているようにコレクションを渡すことはできません。 –
@SeanLange私は答えになると感じました。私は別の方法を見つけなければならないだろうと思います。 –
あなたのParseDataメソッドは何をしますか?つまり、配列を指定すると、配列内の各要素に対して同じことが行われますか?そうであれば、それはスカラー関数であるかテーブル関数であるかに応じて、選択リストまたはクロス適用(それぞれ)で呼び出すことができるCLR関数のように聞こえます。 –