2

可能重复:
将文本安全转换为 XML

我正在使用一个存储过程,我在其中选择记录(超过 80000 条)并将这些记录插入到另一个表中。我的查询如下,用于选择存储过程中的记录。

SELECT EmployeeID,CAST(EmployeeInformation AS xml) as ei, CreatedTimeStamp 
FROM Employee WITH (NOLOCK)

EmployeeInformation列包含字符串格式的 XML 数据。(我不能改变列的格式)

我的问题是,如果SelectEmployeeInformation查询中的任何错误 XML 数据失败并且存储过程失败。

例如。坏 XML : <Employee><EmployeeID></EmployeeI></Employee>[这里的开始标签EmployeeID与结束标签不同EmployeeI]

有什么方法可以跳过错误的 XML 记录并在Select查询中获取其他记录?另外,有什么方法可以让我跟踪跳过的记录吗?

4

1 回答 1

0

我认为当 EmployeeID 元素以 EmployeeI 结尾而没有 D 结尾时,xml 解析器不能让您对不正确的数据进行查询。您可能想编写一个解析器来检测它,但我当然不建议这样做。更正输入可能是更好的方法。请记住,当您的输入有问题时,请修复它!不明确的问题来解决它。此外,无论您的 xml 数据有多大,并且正如您已经选择的那样,xml 数据类型将是存储列的最佳数据类型。

干杯

于 2012-09-07T16:24:30.903 回答