0
我有一個調用CLR並返回一個表的存儲過程。目前,它接受單個字符串,但我想更新它接受多個,也許在一個數組或其他東西。在CLR函數中接受多個字符串
目前,C#函數看起來像:
public static IEnumerable ParseData(System.String data){ ... }
試圖將參數更改爲string[]
,System.String[]
,IEnumerable
和ArrayList
都失敗了。當試圖建立與其中的一個,它可以改變一個generated.sql文件
CREATE FUNCTION [dbo].[ParseData] (@data /* Error: Unsupported type. */)
在如此重要的情況下,我什麼都爲的是能夠調用我的函數SQL就像這樣:
SELECT * FROM clr_parseData((SELECT TOP 10 value FROM table))
聽起來你正在考慮估值表參數(您的查詢語法全部錯誤)。但CLR不支持傳遞整個數據集。你可以傳入一個分隔列表,但你不能傳入你想要的集合。 –
@SeanLange我有一種感覺,那就是答案。猜猜我必須找到一種不同的方式。 –
你的ParseData方法有什麼作用?也就是說,給定一個數組,它會爲該數組中的每個元素做同樣的事情嗎?如果是這樣,這聽起來像是一個CLR函數,根據它是標量函數還是表函數,可以在選擇列表中調用或分別使用交叉應用調用。 –