在SP2007 / MOSS中,我需要针对单个列表运行CAML查询,如下所示:
<Where>
<Or>
<Eq>
<FieldRef Name='URL' />
<Value Type='URL'>/path/item1.aspx</Value>
</Eq>
<Eq>
<FieldRef Name='URL' />
<Value Type='URL'>/path/item4.aspx</Value>
</Eq>
<Eq>
<FieldRef Name='URL' />
<Value Type='URL'>/path/item7.aspx</Value>
</Eq>
</Or>
</Where>
这样做的实际结果是我有一个SPListItemCollection,其中包含我拥有URL的项目。
但是,我收到错误'未正确安装一个或多个字段类型。转到列表设置页面以删除这些字段。'
列表中的所有项目都具有相同的内容类型。 SP日志中唯一相关的错误显示相同的消息。
答案并没有解决这个具体问题,但最终确实是正确的(或者必须嵌套)。问题是我的字段值类型应该是FileRef。
答案 0 :(得分:3)
此错误几乎总是因为您的CAML查询不正确。您是否尝试过像这样格式化:
<Where>
<Or>
<Eq>
<FieldRef Name='URL' />
<Value Type='URL'>/path/item1.aspx</Value>
</Eq>
<Or>
<Eq>
<FieldRef Name='URL' />
<Value Type='URL'>/path/item4.aspx</Value>
</Eq>
<Eq>
<FieldRef Name='URL' />
<Value Type='URL'>/path/item7.aspx</Value>
</Eq>
</Or>
</Or>
</Where>
我很确定在Or或And分支中只能有两个组件。