我正在使用适用于 JAVA 的 Oracle SODA API。我使用的是oracle 12c数据库。我正在尝试在字段上使用 desc 排序从集合中获取所有记录。我已经写了这样的查询,{ "$query" : {}, "$orderby" : { "LmCreatedOn" : -1}}这是java代码,// connection code goes above final OracleDocument document = db.createDocumentFromString("{ \"$query\" : {}, \"$orderby\" : { \"LmCreatedOn\" : -1}}"); final OracleCursor cursor = db.openCollection(SC_LMS_ADMIN_COURSE).find().filter(document).getCursor(); List<JsonNode> listDto = new ArrayList<JsonNode>(); while(cursor.hasNext()) { final OracleDocument doc = cursor.next(); listDto.add(JacksonUtils.getObjectMapper().readTree(doc.getContentAsString())); }但我遇到了一个例外,oracle.soda.rdbms.impl.SODAUtils$1OracleSQLException 在 oracle.soda.rdbms.impl.SODAUtils.makeExceptionWithSQLText(SODAUtils.java:112) 在 oracle.soda.rdbms.impl.SODAUtils.makeExceptionWithSQLText(SODAUtils.java:75) oracle.soda.rdbms.impl.OracleOperationBuilderImpl.getResultSet(OracleOperationBuilderImpl.java:684) 在 oracle.soda.rdbms.impl.OracleOperationBuilderImpl.getResultSet(OracleOperationBuilderImpl.java:655) 在 oracle.soda.rdbms.impl.OracleOperationBuilderImpl.getCursor( OracleOperationBuilderImpl.java:702) 位于 com.cisco.salesconnect.lms.SCLmsServiceHandler.getLMSCourses(SCLmsServiceHandler.java:198) 位于 com.cisco.salesconnect.lms.SCLmsService.getLMSCourses(SCLmsService.java:98) 位于 sun.reflect.NativeMethodAccessorImpl .invoke0(本机方法)位于 sun.reflect.NativeMethodAccessorImpl。在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)在java.lang.reflect.Method.invoke(Method.java:498)在org.glassfish.jersey.server.model调用(NativeMethodAccessorImpl.java:62)
1 回答
人到中年有点甜
TA贡献1895条经验 获得超7个赞
我通过以下方式解决了这个问题,
根据甲骨文文档
如果您使用 Oracle 数据库版本 12c (12.1.0.2),则必须指定 $scalarRequired 或 $lax;否则会引发语法错误。
因为我使用的是 Oracle 数据库版本 12c (12.1.0.2)。我使用的是没有$scalarRequired
. 这就是它抛出语法错误的原因。
更新后的查询是,
{ \"$query\": {}, \"$orderby\" : { \"$fields\" : [{ \"path\" : \"LmCreatedOn\", \"datatype\" : \"varchar2\", \"order\" : \"desc\"}], \"$scalarRequired\" : true }}
这里我也根据oracle 文档更新了查询格式。我提供了一些fields
额外的细节。此功能出现在最新版本中soda jar 1.1.0
添加回答
举报
0/150
提交
取消