我正在使用適用于 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
提交
取消