oracle 空间耶拿中的“可选”参数的最大数量是否有任何限制?
我问的原因是,我有一个大约 5000 个字母的大查询,执行得非常完美。我正在使用带有语义网络功能的 oracle 11.2.0.3 db。
但是,如果我在查询中再添加一个 OPTIONAL 字段,它就会失败。
在下面给出这个例外。
Exception in thread "main" java.lang.NullPointerException
at oracle.spatial.rdf.client.jena.OracleRepeatApply.nextStage(OracleRepeatApply.java:794)
at com.hp.hpl.jena.sparql.engine.iterator.QueryIterRepeatApply.makeNextStage(QueryIterRepeatApply.java:101)
at com.hp.hpl.jena.sparql.engine.iterator.QueryIterRepeatApply.hasNextBinding(QueryIterRepeatApply.java:53)
at com.hp.hpl.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:86)
at com.hp.hpl.jena.sparql.engine.iterator.QueryIterProcessBinding.hasNextBinding(QueryIterProcessBinding.java:49)
at com.hp.hpl.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:86)
at com.hp.hpl.jena.sparql.engine.iterator.QueryIterConvert.hasNextBinding(QueryIterConvert.java:54)
at com.hp.hpl.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:86)
at com.hp.hpl.jena.sparql.engine.iterator.QueryIterConvert.hasNextBinding(QueryIterConvert.java:54)
at com.hp.hpl.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:86)
at com.hp.hpl.jena.sparql.engine.iterator.QueryIterDistinctReduced.hasNextBinding(QueryIterDistinctReduced.java:42)
at com.hp.hpl.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:86)
at com.hp.hpl.jena.sparql.engine.iterator.QueryIteratorWrapper.hasNextBinding(QueryIteratorWrapper.java:30)
at com.hp.hpl.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:86)
at com.hp.hpl.jena.sparql.engine.iterator.QueryIteratorWrapper.hasNextBinding(QueryIteratorWrapper.java:30)
at com.hp.hpl.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:86)
at com.hp.hpl.jena.sparql.engine.ResultSetStream.hasNext(ResultSetStream.java:57)
at com.hp.hpl.jena.sparql.resultset.ResultSetMem.<init>(ResultSetMem.java:82)
at com.hp.hpl.jena.sparql.resultset.TextOutput.write(TextOutput.java:133)
at com.hp.hpl.jena.sparql.resultset.TextOutput.write(TextOutput.java:116)
at com.hp.hpl.jena.sparql.resultset.TextOutput.write(TextOutput.java:104)
at com.hp.hpl.jena.sparql.resultset.TextOutput.format(TextOutput.java:51)
at com.hp.hpl.jena.query.ResultSetFormatter.out(ResultSetFormatter.java:109)
我确定查询是正确的(此查询在 Stardog Tuple 商店中有效)。知道为什么会这样吗?oracle 中的查询长度是否有任何限制/配置?
编辑:- 查询类似于下面
"PREFIX............"
+"SELECT........"
+"WHERE {......"
+"..............."
//+"OPTIONAL { ?store have:stored ?milk }"
//+"OPTIONAL { ?store have:balance ?bal }"
+"}"
当我取消注释OPTIONAL 行的任何“一个”时,查询有效。
如果我取消注释两个可选行查询将失败。