Реализация табличных функций SQL CLRC#

Место общения программистов C#
Ответить
Anonymous
 Реализация табличных функций SQL CLR

Сообщение Anonymous »

Я пытаюсь реализовать некоторые функции регулярных выражений для SQL с помощью CLR. У меня не было проблем с созданием скалярных функций, но я ходил по кругу, пытаясь создать эти табличные функции. Я сократил код до настолько простого, насколько это возможно, чтобы увидеть, чего мне не хватает в структуре.

Код: Выделить всё

[SqlFunction(
FillRowMethodName = nameof(FillRow)
)]
public static IEnumerable TestTVF(string a, string b, int c)
{
IEnumerable l = new List { 1, 2, 3, 4, 5, 6};
return l;
}

public static void FillRow(object o, out int test)
{
test = (int)o;
}
Объявление функции SQL

Код: Выделить всё

CREATE FUNCTION dbo.TestTVF(@a NVARCHAR(MAX), @b NVARCHAR(MAX), @c INT)
RETURNS TABLE (
test INT
)
AS EXTERNAL NAME RegexSQLCLR.[RegexSQLCLR.RegexSQL].TestTVF
Импорт сборок в SQL осуществляется без проблем, поскольку я могу создавать скалярные функции из сборки. Когда я пытаюсь выполнить оператор CREATE FUNCTION, я получаю эту ошибку:

CREATE FUNCTION для «TestTVF» не удалось, поскольку типы T-SQL и CLR для возвращаемого значения не работают. не совпадает.

Это не тот код, который мне нужен, но даже эта простая реализация у меня не работает. Что я делаю не так?

Подробнее здесь: https://stackoverflow.com/questions/793 ... -functions
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»