2012-09-07 116 views
2

可能重复:
Safe-casting text to XML跳过Select语句不良记录

我使用一个存储过程,在那里我选择记录(这是比80000),并插入这些记录到另一张桌子。我的查询如下选择存储过程中的记录。

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

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

我的问题是,在任何恶劣的XML数据的情况下,EmployeeInformation选择查询失败并且该存储过程失败。

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

有没有我可以在选择查询跳过坏XML记录,并获取其他记录什么办法?另外,有没有办法让我跟踪跳过的记录?

回答

0

我认为当雇员元素在结束与EmployeeI结束,而不d,XML解析器不能让你做你不正确的数据查询。你可能想写一个解析器来检测,但我当然不会这样建议。纠正输入可能是更好的方法。请记住,当您的输入有问题时,请修复它!不清除问题来解决它。此外,无论您的xml数据的大小和您已选择的大小如何,xml数据类型都是存储列的最佳数据类型。

干杯