Мой коллега написал пакет в VB.NET для работы со строками.Меня попросили реализовать их через CLR.Пакет обращается к справочной базе данных на том же сервере, что и файл CLR CLR, развернутый для стандартизации строк.Я импортировал пакет в свой код CLR для создания функций для SQL Server.
После развертывания файла dll на сервере sql функции работают нормально, за исключением случаев, когда я получаю сообщение об ошибке
System.NullReferenceException: Object reference not set to an instance of an object.
Я должен выполнить свой запрос несколько раз, чтобы он работал.Кажется, стол заблокирован или спит.Мой запрос выглядит как
SELECT EMAIL_ADDRESS, dbo.ufn_getEmailDomain (Email_Address) AS EDOMAIN FROM CONTACT_TEMP WHERE Email_Address НЕ НЕДЕЙСТВИТЕЛЕН, а Email_Address <> ''
dbo.ufn_getEmailDomain является функцией CLR.
Онлайн-доступ к этому серверу отсутствует вообще.Я искал некоторое время и не мог найти, почему эта ошибка иногда возникает или как ее исправить.
Ваш отзыв очень важен.
мои функции CLR здесь.
<Microsoft.SqlServer.Server.SqlFunction(DataAccess:=DataAccessKind.Read)> _
Public Shared Function ufn_getEmailDomainSLD(ByVal email As String) As String
If email Is Nothing Then
Return Nothing
End If
Dim de As New DataEmail(email)
Dim dm As New DataDomain
Dim emailDomain As String
dm = de.Domain
emailDomain = dm.SLD
Return emailDomain
End Function