У нас есть таблица журнала, в которой есть столбец сообщений, который иногда имеет трассировку стека исключений. У меня есть несколько критериев, по которым определяется, есть ли это в сообщении. Мы не хотим показывать эти сообщения покупателю, а вместо этого должны иметь такое сообщение:
Произошла внутренняя ошибка. Свяжитесь с нами и сообщите код ссылки xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
где xxx и т. д. - это столбец guid в таблице. Я пишу хранимую процедуру так:
declare @exceptionCriteria nvarchar(50)
select @exceptionCriteria = '%<enter criteria etc>%'
select LogDate,
case
when Message like @exceptionCriteria
then 'Internal Error Occured. Reference Code: ' + str(RequestID)
else Message
end
from UpdateQueue
RequestID
является типом данных Guid в SQL Server и здесь не преобразуется в строку. Я видел код о том, как преобразовать Guid в строку, но он многострочный, и я не думаю, что он будет работать в операторе case. Любые идеи?