我正在尝试设计一个查询来搜索 EMR 数据库中的审计日志。问题是审计信息存储在 varchar 列中,有时它只是对发生的事情的文本描述(我不在乎),有时它包含有效的 XML(我知道这是一个设计缺陷,但我可以'不要改变它,因为我没有创建 EMR)
我创建了一个表值函数来解析 xml 并返回数据,但是 select 语句无法执行,因为有时函数中的 xml 转换会失败。我不能对函数中的转换进行 try/catch,我也可以从函数调用存储过程来使用 try/catch 进行转换,所以我不知道该去哪里。
select top 1 * from Audit with(nolock) external apply dbo.cus_GetDeletedAttachmentInfo(Audit.Audituid) as detail
错误 XML 解析:第 1 行,字符 136,非法 xml 字符