使用XPath包含并且缺少右括号'错误

时间:2015-07-19 21:07:28

标签: java sql xml xpath

我希望使用xpath函数'包含'提取包含' Potter'但我一直得到一个' java.sql.SQLSyntaxErrorException:ORA-00907:缺少右括号'错误,有什么帮助吗?

int find(int i)
{
    if(parent[i]==i)
    return i;
    else
    return parent[i]=find(parent[i]);
}
void union(int a,int b)
{
    x=find(a);y=find(b);
        if(x!=y)
        {
            if(rank[x]>rank[y])
            parent[y]=x;
            else
            {
            parent[x]=y;
            if(rank[x]==rank[y])
            rank[y]+=1;             
            }
        }
}

2 个答案:

答案 0 :(得分:1)

在这一行:

+ "WHERE a.book.existsNode('/book/title[contains(text(), 'Potter')]') = 1 ");

你必须以任何方式逃避'波特'的单引号。因为您的existsNode函数已经有值的单引号!

未经过测试的解决方案可以将内部单引号替换为两个单引号,如下所示:

+ "WHERE a.book.existsNode('/book/title[contains(text(), ''Potter'')]') = 1 ");
                                                         ^        ^

答案 1 :(得分:0)

这是引用问题。

我建议你读这个: http://www.dba-oracle.com/sf_ora_00907_missing_right_parenthesis.htm

在你的情况下,内部引号必须加倍