0

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 行的任何“一个”时,查询有效。
如果我取消注释两个可选行查询将失败。

4

0 回答 0