Как я могу вызвать стандартную сборку .NET в SQL
Вопрос
У меня возникла проблема, из-за которой столбец в моей таблице содержит данные, которые кодируются с использованием метода System.Xml.XmlConvert.Encode.
Теперь мне нужно манипулировать этими данными в SQL и я не нашел способа дублировать System.Xml.XmlConvert.Метод декодирования.
Итак, я исследовал, как я могу использовать System.Пространство имен XML в SQL для доступа к этому методу без необходимости оборачивать его внутри одной из моих собственных сборок.Возможно ли это?т. е.как я могу получить доступ к этой сборке напрямую через T-SQL?
Решение
Существует довольно много примеров написания надстроек с использованием .NET для SQL.Я полагаю, что для создания надстройки вам понадобится SQL 2005 или новее.
Вот пример, который особенно полезен.
В вашем случае вы, вероятно, захотите написать функцию, которая принимает байт[] и возвращает строку (декодирование), вместе с соответствующей функцией, которая принимает строку и возвращает байт[].
На самом деле я не уверен, что вы можете напрямую использовать byte[] , но вы должны быть в состоянии написать соответствующую функцию-оболочку в SQL, которая может принимать шестнадцатеричную строку и превращать ее в varbinary(), если это необходимо.
Редактировать:
Вот несколько более надежных ссылок на другие ссылки, которые включены в предыдущую ссылку, на случай, если она когда-нибудь исчезнет.
Как сделать:Создайте и запустите пользовательскую функцию CLR SQL @ MSDN