Как я могу вызвать стандартную сборку .NET в SQL - PullRequest
4 голосов
/ 17 ноября 2009

У меня проблема с тем, что столбец в моей таблице содержит данные, которые кодируются с использованием метода System.Xml.XmlConvert.Encode.

Теперь мне нужно манипулировать этими данными в SQL, и я не нашел способа дублировать метод System.Xml.XmlConvert.Decode.

Итак, я исследовал, как я могу использовать пространство имен System.XML в SQL для доступа к этому методу, БЕЗ необходимости оборачивать его внутри одной из моих собственных сборок. Это возможно? то есть как я могу получить доступ к этой сборке напрямую через T-SQL?

1 Ответ

2 голосов
/ 17 ноября 2009

Существует довольно много примеров написания надстроек с использованием .NET для SQL. Я полагаю, что для создания надстройки вам понадобится SQL 2005 или новее.

Вот пример, который особенно полезен.

Создание пользовательской функции CLR SQL для проверки значений с помощью регулярных выражений @ MSDN

В вашем случае вы, вероятно, захотите написать функцию, которая принимает байт [] и возвращает строку (декодирование) вместе с соответствующей функцией, которая принимает строку и возвращает байт [].

На самом деле я не уверен, что вы можете напрямую использовать byte [], но вы должны иметь возможность написать соответствующую функцию-оболочку в SQL, которая может взять шестнадцатеричную строку и превратить ее в varbinary (), если это необходимо.

редактирование:

Вот несколько более надежных ссылок на другие ссылки, которые включены в предыдущую ссылку, на случай, если она вообще исчезнет.

Как: создать и запустить пользовательскую функцию CLR SQL @ MSDN

Пользовательские атрибуты для подпрограмм CLR @ TechNet

...