我希望使用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;
}
}
}
答案 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
在你的情况下,内部引号必须加倍