Cannot retrieve Elev Timeseries
@perrymanmd is already working on this.
Since Jan 6, 2026.
- Dominant language
- Java
- Stars
- 28
- Forks
- 25
- Avg merge
- 4d 22h
- Merged PRs (30d)
- 20
Description
Describe the bug
I'm working on #1102 and I was testing timeseries retrieval with Elev parameters. I started getting an error I hadn't seen before. I created some tests and a draft pr ( here https://github.com/USACE/cwms-data-api/pull/1341) to see if it duplicates in this environment. The message is "ORA-14551: cannot perform a DML operation inside a query".
The test that triggers this is here: https://github.com/USACE/cwms-data-api/blob/7c849aa6048eb851922ba44fcc3308126cae9070/cwms-data-api/src/test/java/cwms/cda/api/TimeseriesControllerTestIT.java#L1818
I tried refactoring the timeseries query so that the vertical-datum retrieval is done in its own query and I got a different error - I don't have the exact wording but it was basically something like User doesn't have write-access. Seems weird. Does cwms-loc.GET_VERTICAL_DATUM_INFO_F cause a write? I wouldn't think any of this code had changed recently.
Expected behavior
I'd expect timeseries to be returned including the vertical-datum
To Reproduce
Steps to reproduce the behavior:
- Query for an Elev timeseries
Logs/Incident Identifier
TimeseriesControllerTestIT (schema: latest-dev) > TimeseriesControllerTestIT.test_get_for_elev_has_datum (schema: latest-dev) STANDARD_ERROR
2025-09-30T18:32:58.6011938Z 30-Sep-2025 18:32:58.573 WARNING [http-nio-auto-1-exec-18] cwms.cda.ApiServlet.lambda$init$20 error on request[-1402968679892546527]: /cwms-data/timeseries/
2025-09-30T18:32:58.6022588Z org.jooq.exception.DataAccessException: SQL [with "valid"("tscode", "tsid", "office_id", "loc_part", "units", "interval", "parm_part") as (select "validts"."tscode" "tscode", "validts"."tsid" "tsid", "validts"."office_id" "office_id", "CWMS_20"."CWMS_UTIL"."SPLIT_TEXT"("validts"."tsid", ?, ?, ?) "loc_part", ? "units", "CWMS_20"."CWMS_TS"."GET_TS_INTERVAL"("validts"."tsid") "interval", upper("CWMS_20"."CWMS_UTIL"."SPLIT_TEXT"("validts"."tsid", ?, ?, ?)) "parm_part" from (select "CWMS_20"."CWMS_TS"."GET_TS_CODE"(?, "CWMS_20"."CWMS_UTIL"."GET_DB_OFFICE_ID"(?)) "tscode", "CWMS_20"."CWMS_TS"."GET_TS_ID"(?, "CWMS_20"."CWMS_UTIL"."GET_DB_OFFICE_ID"(?)) "tsid", "CWMS_20"."CWMS_UTIL"."GET_DB_OFFICE_ID"(?) "office_id" from DUAL) "validts") select "valid"."tsid" "NAME", "valid"."office_id" "office_id", "valid"."units" "units", "valid"."interval" "interval", "valid"."loc_part" "loc_part", "valid"."parm_part" "parm_part", case "valid"."parm_part" when ? then "CWMS_20"."CWMS_LOC"."GET_VERTICAL_DATUM_INFO_F"("valid"."loc_part", "valid"."units", "valid"."office_id") else ? end "VERTICAL_DATUM", (select count(*) from (select DATE_TIME "DATE_TIME", VALUE "VALUE", QUALITY_CODE "QUALITY_CODE" from table(cwms_20.cwms_ts.retrieve_ts_out_tab("valid"."tsid","valid"."units",cwms_20.cwms_util.to_timestamp(?),cwms_20.cwms_util.to_timestamp(?),'UTC',?,?,?,?,?,?,?,"valid"."office_id") ) retrieveTsTotal) "alias_8844489") "TOTAL", "CWMS_20"."AV_CWMS_TS_ID2"."INTERVAL_UTC_OFFSET", "CWMS_20"."AV_CWMS_TS_ID2"."TIME_ZONE_ID" from "valid" left outer join "CWMS_20"."AV_CWMS_TS_ID2" on ("CWMS_20"."AV_CWMS_TS_ID2"."DB_OFFICE_ID" = "valid"."office_id" and "CWMS_20"."AV_CWMS_TS_ID2"."TS_CODE" = "valid"."tscode" and "CWMS_20"."AV_CWMS_TS_ID2"."ALIASED_ITEM" is null)]; ORA-14551: cannot perform a DML operation inside a query
2025-09-30T18:32:58.6031750Z ORA-06512: at "CWMS_20.CWMS_LOC", line 7309
2025-09-30T18:32:58.6032611Z ORA-06512: at "CWMS_20.CWMS_LOC", line 7833
2025-09-30T18:32:58.6033451Z ORA-06512: at "CWMS_20.CWMS_LOC", line 8061
2025-09-30T18:32:58.6034191Z ORA-06512: at "CWMS_20.CWMS_LOC", line 8047
2025-09-30T18:32:58.6034954Z ORA-06512: at "CWMS_20.CWMS_LOC", line 7950
2025-09-30T18:32:58.6036034Z ORA-06512: at "CWMS_20.CWMS_LOC", line 8238
2025-09-30T18:32:58.6036817Z ORA-06512: at line 1
2025-09-30T18:32:58.6037669Z
2025-09-30T18:32:58.6038228Z at org.jooq_3.18.7.ORACLE18C.debug(Unknown Source)
2025-09-30T18:32:58.6038853Z at org.jooq_3.18.7.ORACLE18C.debug(Unknown Source)
2025-09-30T18:32:58.6039481Z at org.jooq.impl.Tools.translate(Tools.java:3470)
2025-09-30T18:32:58.6040194Z at org.jooq.impl.Tools.translate(Tools.java:3458)
2025-09-30T18:32:58.6041181Z at org.jooq.impl.DefaultExecuteContext.sqlException(DefaultExecuteContext.java:802)
2025-09-30T18:32:58.6042220Z at org.jooq.impl.AbstractQuery.execute(AbstractQuery.java:360)
2025-09-30T18:32:58.6043431Z at org.jooq.impl.AbstractResultQuery.fetchLazy(AbstractResultQuery.java:301)
2025-09-30T18:32:58.6044699Z at org.jooq.impl.AbstractResultQuery.fetchLazyNonAutoClosing(AbstractResultQuery.java:322)
2025-09-30T18:32:58.6045957Z at org.jooq.impl.SelectImpl.fetchLazyNonAutoClosing(SelectImpl.java:2862)
2025-09-30T18:32:58.6047112Z at org.jooq.impl.ResultQueryTrait.fetchOne(ResultQueryTrait.java:509)
2025-09-30T18:32:58.6048315Z at org.jooq.impl.ResultQueryTrait.fetchOne(ResultQueryTrait.java:514)
2025-09-30T18:32:58.6049552Z at cwms.cda.data.dao.TimeSeriesDaoImpl.getRequestedTimeSeries(TimeSeriesDaoImpl.java:440)
2025-09-30T18:32:58.6051346Z at cwms.cda.data.dao.TimeSeriesDaoImpl.getTimeseries(TimeSeriesDaoImpl.java:234)
2025-09-30T18:32:58.6052483Z at cwms.cda.api.TimeSeriesController.getAll(TimeSeriesController.java:453)
2025-09-30T18:32:58.6053550Z at io.javalin.apibuilder.CrudFunction$1.invoke$lambda-0(CrudHandler.kt:30)
2025-09-30T18:32:58.6056039Z at io.javalin.apibuilder.CrudFunctionHandler.handle(CrudHandler.kt)
2025-09-30T18:32:58.6057112Z at cwms.cda.security.CdaAccessManager.manage(CdaAccessManager.java:37)
2025-09-30T18:32:58.6058476Z at io.javalin.http.JavalinServlet.addHandler$lambda-0(JavalinServlet.kt:96)
2025-09-30T18:32:58.6059423Z at io.javalin.http.JavalinServlet$lifecycle$2$1$1.invoke(JavalinServlet.kt:43)
2025-09-30T18:32:58.6060418Z at io.javalin.http.JavalinServlet$lifecycle$2$1$1.invoke(JavalinServlet.kt:43)
2025-09-30T18:32:58.6061507Z at io.javalin.http.JavalinServletHandler.executeNextTask(JavalinServletHandler.kt:99)
2025-09-30T18:32:58.6062816Z at io.javalin.http.JavalinServletHandler.queueNextTaskOrFinish$lambda-1(JavalinServletHandler.kt:85)
2025-09-30T18:32:58.6064225Z at java.base/java.util.concurrent.CompletableFuture.uniComposeStage(CompletableFuture.java:1106)
2025-09-30T18:32:58.6065520Z at java.base/java.util.concurrent.CompletableFuture.thenCompose(CompletableFuture.java:2241)
2025-09-30T18:32:58.6066823Z at io.javalin.http.JavalinServletHandler.queueNextTaskOrFinish$javalin(JavalinServletHandler.kt:85)
2025-09-30T18:32:58.6068504Z at io.javalin.http.JavalinServletHandler.executeNextTask$lambda-11$lambda-10(JavalinServletHandler.kt:119)
2025-09-30T18:32:58.6069836Z at java.base/java.util.concurrent.CompletableFuture.uniApplyNow(CompletableFuture.java:680)
2025-09-30T18:32:58.6071133Z at java.base/java.util.concurrent.CompletableFuture.uniApplyStage(CompletableFuture.java:658)
2025-09-30T18:32:58.6072425Z at java.base/java.util.concurrent.CompletableFuture.thenApply(CompletableFuture.java:2100)
2025-09-30T18:32:58.6073781Z at io.javalin.http.JavalinServletHandler.executeNextTask(JavalinServletHandler.kt:119)
2025-09-30T18:32:58.6075204Z at io.javalin.http.JavalinServletHandler.queueNextTaskOrFinish$lambda-1(JavalinServletHandler.kt:85)
2025-09-30T18:32:58.6076673Z at java.base/java.util.concurrent.CompletableFuture.uniComposeStage(CompletableFuture.java:1106)
2025-09-30T18:32:58.6078299Z at java.base/java.util.concurrent.CompletableFuture.thenCompose(CompletableFuture.java:2241)
2025-09-30T18:32:58.6079751Z at io.javalin.http.JavalinServletHandler.queueNextTaskOrFinish$javalin(JavalinServletHandler.kt:85)
2025-09-30T18:32:58.6081514Z at io.javalin.http.JavalinServletHandler.executeNextTask$lambda-11$lambda-10(JavalinServletHandler.kt:119)
2025-09-30T18:32:58.6082931Z at java.base/java.util.concurrent.CompletableFuture.uniApplyNow(CompletableFuture.java:680)
2025-09-30T18:32:58.6084231Z at java.base/java.util.concurrent.CompletableFuture.uniApplyStage(CompletableFuture.java:658)
2025-09-30T18:32:58.6085527Z at java.base/java.util.concurrent.CompletableFuture.thenApply(CompletableFuture.java:2100)
2025-09-30T18:32:58.6086723Z at io.javalin.http.JavalinServletHandler.executeNextTask(JavalinServletHandler.kt:119)
2025-09-30T18:32:58.6088642Z at io.javalin.http.JavalinServletHandler.queueNextTaskOrFinish$lambda-1(JavalinServletHandler.kt:85)
2025-09-30T18:32:58.6090079Z at java.base/java.util.concurrent.CompletableFuture.uniComposeStage(CompletableFuture.java:1106)
2025-09-30T18:32:58.6091425Z at java.base/java.util.concurrent.CompletableFuture.thenCompose(CompletableFuture.java:2241)
2025-09-30T18:32:58.6092973Z at io.javalin.http.JavalinServletHandler.queueNextTaskOrFinish$javalin(JavalinServletHandler.kt:85)
2025-09-30T18:32:58.6094056Z at io.javalin.http.JavalinServlet.service(JavalinServlet.kt:89)
2025-09-30T18:32:58.6094923Z at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
2025-09-30T18:32:58.6095743Z at cwms.cda.ApiServlet.service(ApiServlet.java:1030)
2025-09-30T18:32:58.6096644Z at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
2025-09-30T18:32:58.6098085Z at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199)
2025-09-30T18:32:58.6099542Z at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
2025-09-30T18:32:58.6100779Z at org.apache.catalina.filters.HttpHeaderSecurityFilter.doFilter(HttpHeaderSecurityFilter.java:129)
2025-09-30T18:32:58.6102291Z at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168)
2025-09-30T18:32:58.6103749Z at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
2025-09-30T18:32:58.6104984Z at org.apache.catalina.filters.CorsFilter.handleNonCORS(CorsFilter.java:333)
2025-09-30T18:32:58.6105980Z at org.apache.catalina.filters.CorsFilter.doFilter(CorsFilter.java:160)
2025-09-30T18:32:58.6107583Z at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168)
2025-09-30T18:32:58.6109064Z at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
2025-09-30T18:32:58.6110334Z at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)
2025-09-30T18:32:58.6111589Z at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
2025-09-30T18:32:58.6112798Z at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)
2025-09-30T18:32:58.6114038Z at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)
2025-09-30T18:32:58.6115200Z at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
2025-09-30T18:32:58.6116414Z at org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:241)
2025-09-30T18:32:58.6117814Z at fixtures.tomcat.SingleSignOnWrapper.invoke(SingleSignOnWrapper.java:21)
2025-09-30T18:32:58.6119019Z at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
2025-09-30T18:32:58.6120215Z at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:346)
2025-09-30T18:32:58.6121344Z at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:397)
2025-09-30T18:32:58.6122494Z at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
2025-09-30T18:32:58.6123743Z at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:935)
2025-09-30T18:32:58.6125049Z at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1792)
2025-09-30T18:32:58.6126091Z at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
2025-09-30T18:32:58.6127632Z at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1189)
2025-09-30T18:32:58.6129070Z at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:658)
2025-09-30T18:32:58.6130326Z at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
2025-09-30T18:32:58.6131271Z at java.base/java.lang.Thread.run(Thread.java:829)
2025-09-30T18:32:58.6132471Z Caused by: java.sql.SQLException: ORA-14551: cannot perform a DML operation inside a query
2025-09-30T18:32:58.6133366Z ORA-06512: at "CWMS_20.CWMS_LOC", line 7309
2025-09-30T18:32:58.6133962Z ORA-06512: at "CWMS_20.CWMS_LOC", line 7833
2025-09-30T18:32:58.6134669Z ORA-06512: at "CWMS_20.CWMS_LOC", line 8061
2025-09-30T18:32:58.6135215Z ORA-06512: at "CWMS_20.CWMS_LOC", line 8047
2025-09-30T18:32:58.6135751Z ORA-06512: at "CWMS_20.CWMS_LOC", line 7950
2025-09-30T18:32:58.6136309Z ORA-06512: at "CWMS_20.CWMS_LOC", line 8238
2025-09-30T18:32:58.6136775Z ORA-06512: at line 1
2025-09-30T18:32:58.6136997Z
2025-09-30T18:32:58.6137612Z at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:509)
2025-09-30T18:32:58.6138566Z at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:461)
2025-09-30T18:32:58.6139473Z at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1104)
2025-09-30T18:32:58.6140331Z at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:550)
2025-09-30T18:32:58.6141090Z at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:268)
2025-09-30T18:32:58.6141841Z at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:655)
2025-09-30T18:32:58.6142833Z at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:270)
2025-09-30T18:32:58.6143975Z at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:91)
2025-09-30T18:32:58.6145246Z at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:807)
2025-09-30T18:32:58.6146508Z at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:983)
2025-09-30T18:32:58.6147867Z at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1168)
2025-09-30T18:32:58.6149210Z at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3666)
2025-09-30T18:32:58.6150543Z at oracle.jdbc.driver.T4CPreparedStatement.executeInternal(T4CPreparedStatement.java:1426)
2025-09-30T18:32:58.6151818Z at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3778)
2025-09-30T18:32:58.6153195Z at oracle.jdbc.driver.OraclePreparedStatementWrapper.execute(OraclePreparedStatementWrapper.java:1081)
2025-09-30T18:32:58.6154593Z at jdk.internal.reflect.GeneratedMethodAccessor45.invoke(Unknown Source)
2025-09-30T18:32:58.6156207Z at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
2025-09-30T18:32:58.6157602Z at java.base/java.lang.reflect.Method.invoke(Method.java:566)
2025-09-30T18:32:58.6158887Z at org.apache.tomcat.jdbc.pool.interceptor.AbstractQueryReport$StatementProxy.invoke(AbstractQueryReport.java:214)
2025-09-30T18:32:58.6160064Z at com.sun.proxy.$Proxy60.execute(Unknown Source)
2025-09-30T18:32:58.6160917Z at jdk.internal.reflect.GeneratedMethodAccessor45.invoke(Unknown Source)
2025-09-30T18:32:58.6162282Z at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
2025-09-30T18:32:58.6163501Z at java.base/java.lang.reflect.Method.invoke(Method.java:566)
2025-09-30T18:32:58.6164986Z at org.apache.tomcat.jdbc.pool.interceptor.AbstractQueryReport$StatementProxy.invoke(AbstractQueryReport.java:214)
2025-09-30T18:32:58.6166103Z at com.sun.proxy.$Proxy60.execute(Unknown Source)
2025-09-30T18:32:58.6167055Z at jdk.internal.reflect.GeneratedMethodAccessor45.invoke(Unknown Source)
2025-09-30T18:32:58.6168592Z at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
2025-09-30T18:32:58.6169794Z at java.base/java.lang.reflect.Method.invoke(Method.java:566)
2025-09-30T18:32:58.6171252Z at org.apache.tomcat.jdbc.pool.interceptor.StatementDecoratorInterceptor$StatementProxy.invoke(StatementDecoratorInterceptor.java:238)
2025-09-30T18:32:58.6172811Z at com.sun.proxy.$Proxy60.execute(Unknown Source)
2025-09-30T18:32:58.6173767Z at jdk.internal.reflect.GeneratedMethodAccessor45.invoke(Unknown Source)
2025-09-30T18:32:58.6175154Z at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
2025-09-30T18:32:58.6176572Z at java.base/java.lang.reflect.Method.invoke(Method.java:566)
2025-09-30T18:32:58.6177774Z at org.apache.tomcat.jdbc.pool.StatementFacade$StatementProxy.invoke(StatementFacade.java:123)
2025-09-30T18:32:58.6178719Z at com.sun.proxy.$Proxy60.execute(Unknown Source)
2025-09-30T18:32:58.6179742Z at org.jooq.tools.jdbc.DefaultPreparedStatement.execute(DefaultPreparedStatement.java:219)
2025-09-30T18:32:58.6180955Z at org.jooq.impl.Tools.executeStatementAndGetFirstResultSet(Tools.java:4695)
2025-09-30T18:32:58.6182040Z at org.jooq.impl.AbstractResultQuery.execute(AbstractResultQuery.java:236)
2025-09-30T18:32:58.6183013Z at org.jooq.impl.AbstractQuery.execute(AbstractQuery.java:346)
2025-09-30T18:32:58.6183611Z ... 68 more
2025-09-30T18:32:58.6202199Z Caused by: Error : 14551, Position : 945, Sql = with "valid"("tscode", "tsid", "office_id", "loc_part", "units", "interval", "parm_part") as (select "validts"."tscode" "tscode", "validts"."tsid" "tsid", "validts"."office_id" "office_id", "CWMS_20"."CWMS_UTIL"."SPLIT_TEXT"("validts"."tsid", :1 , :2 , :3 ) "loc_part", :4 "units", "CWMS_20"."CWMS_TS"."GET_TS_INTERVAL"("validts"."tsid") "interval", upper("CWMS_20"."CWMS_UTIL"."SPLIT_TEXT"("validts"."tsid", :5 , :6 , :7 )) "parm_part" from (select "CWMS_20"."CWMS_TS"."GET_TS_CODE"(:8 , "CWMS_20"."CWMS_UTIL"."GET_DB_OFFICE_ID"(:9 )) "tscode", "CWMS_20"."CWMS_TS"."GET_TS_ID"(:10 , "CWMS_20"."CWMS_UTIL"."GET_DB_OFFICE_ID"(:11 )) "tsid", "CWMS_20"."CWMS_UTIL"."GET_DB_OFFICE_ID"(:12 ) "office_id" from DUAL) "validts") select "valid"."tsid" "NAME", "valid"."office_id" "office_id", "valid"."units" "units", "valid"."interval" "interval", "valid"."loc_part" "loc_part", "valid"."parm_part" "parm_part", case "valid"."parm_part" when :13 then "CWMS_20"."CWMS_LOC"."GET_VERTICAL_DATUM_INFO_F"("valid"."loc_part", "valid"."units", "valid"."office_id") else :14 end "VERTICAL_DATUM", (select count(*) from (select DATE_TIME "DATE_TIME", VALUE "VALUE", QUALITY_CODE "QUALITY_CODE" from table(cwms_20.cwms_ts.retrieve_ts_out_tab("valid"."tsid","valid"."units",cwms_20.cwms_util.to_timestamp(:15 ),cwms_20.cwms_util.to_timestamp(:16 ),'UTC',:17 ,:18 ,:19 ,:20 ,:21 ,:22 ,:23 ,"valid"."office_id") ) retrieveTsTotal) "alias_8844489") "TOTAL", "CWMS_20"."AV_CWMS_TS_ID2"."INTERVAL_UTC_OFFSET", "CWMS_20"."AV_CWMS_TS_ID2"."TIME_ZONE_ID" from "valid" left outer join "CWMS_20"."AV_CWMS_TS_ID2" on ("CWMS_20"."AV_CWMS_TS_ID2"."DB_OFFICE_ID" = "valid"."office_id" and "CWMS_20"."AV_CWMS_TS_ID2"."TS_CODE" = "valid"."tscode" and "CWMS_20"."AV_CWMS_TS_ID2"."ALIASED_ITEM" is null), OriginalSql = with "valid"("tscode", "tsid", "office_id", "loc_part", "units", "interval", "parm_part") as (select "validts"."tscode" "tscode", "validts"."tsid" "tsid", "validts"."office_id" "office_id", "CWMS_20"."CWMS_UTIL"."SPLIT_TEXT"("validts"."tsid", ?, ?, ?) "loc_part", ? "units", "CWMS_20"."CWMS_TS"."GET_TS_INTERVAL"("validts"."tsid") "interval", upper("CWMS_20"."CWMS_UTIL"."SPLIT_TEXT"("validts"."tsid", ?, ?, ?)) "parm_part" from (select "CWMS_20"."CWMS_TS"."GET_TS_CODE"(?, "CWMS_20"."CWMS_UTIL"."GET_DB_OFFICE_ID"(?)) "tscode", "CWMS_20"."CWMS_TS"."GET_TS_ID"(?, "CWMS_20"."CWMS_UTIL"."GET_DB_OFFICE_ID"(?)) "tsid", "CWMS_20"."CWMS_UTIL"."GET_DB_OFFICE_ID"(?) "office_id" from DUAL) "validts") select "valid"."tsid" "NAME", "valid"."office_id" "office_id", "valid"."units" "units", "valid"."interval" "interval", "valid"."loc_part" "loc_part", "valid"."parm_part" "parm_part", case "valid"."parm_part" when ? then "CWMS_20"."CWMS_LOC"."GET_VERTICAL_DATUM_INFO_F"("valid"."loc_part", "valid"."units", "valid"."office_id") else ? end "VERTICAL_DATUM", (select count(*) from (select DATE_TIME "DATE_TIME", VALUE "VALUE", QUALITY_CODE "QUALITY_CODE" from table(cwms_20.cwms_ts.retrieve_ts_out_tab("valid"."tsid","valid"."units",cwms_20.cwms_util.to_timestamp(?),cwms_20.cwms_util.to_timestamp(?),'UTC',?,?,?,?,?,?,?,"valid"."office_id") ) retrieveTsTotal) "alias_8844489") "TOTAL", "CWMS_20"."AV_CWMS_TS_ID2"."INTERVAL_UTC_OFFSET", "CWMS_20"."AV_CWMS_TS_ID2"."TIME_ZONE_ID" from "valid" left outer join "CWMS_20"."AV_CWMS_TS_ID2" on ("CWMS_20"."AV_CWMS_TS_ID2"."DB_OFFICE_ID" = "valid"."office_id" and "CWMS_20"."AV_CWMS_TS_ID2"."TS_CODE" = "valid"."tscode" and "CWMS_20"."AV_CWMS_TS_ID2"."ALIASED_ITEM" is null), Error Msg = ORA-14551: cannot perform a DML operation inside a query
2025-09-30T18:32:58.6215471Z ORA-06512: at "CWMS_20.CWMS_LOC", line 7309
2025-09-30T18:32:58.6216046Z ORA-06512: at "CWMS_20.CWMS_LOC", line 7833
2025-09-30T18:32:58.6216389Z ORA-06512: at "CWMS_20.CWMS_LOC", line 8061
2025-09-30T18:32:58.6216941Z ORA-06512: at "CWMS_20.CWMS_LOC", line 8047
2025-09-30T18:32:58.6217648Z ORA-06512: at "CWMS_20.CWMS_LOC", line 7950
2025-09-30T18:32:58.6217954Z ORA-06512: at "CWMS_20.CWMS_LOC", line 8238
2025-09-30T18:32:58.6218208Z ORA-06512: at line 1
2025-09-30T18:32:58.6218416Z
2025-09-30T18:32:58.6218865Z at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:513)
2025-09-30T18:32:58.6219484Z ... 106 more
2025-09-30T18:32:58.7011226Z
2025-09-30T18:32:58.7024397Z TimeseriesControllerTestIT (schema: latest-dev) > TimeseriesControllerTestIT.test_get_for_elev_has_datum (schema: latest-dev) STANDARD_OUT
2025-09-30T18:32:58.7025484Z Request method: GET
2025-09-30T18:32:58.7026687Z Request URI: http://localhost:35927/cwms-data/timeseries/?office=SPK&unit=m&name=Sacramento%20Dam.Elev.Inst.1Hour.0.Raw&begin=2008-05-01T03%3A00%3A00.000Z
2025-09-30T18:32:58.7028002Z Proxy: <none>
2025-09-30T18:32:58.7028320Z Request params: <none>
2025-09-30T18:32:58.7028679Z Query params: office=SPK
2025-09-30T18:32:58.7029044Z unit=m
2025-09-30T18:32:58.7029492Z name=Sacramento Dam.Elev.Inst.1Hour.0.Raw
2025-09-30T18:32:58.7030024Z begin=2008-05-01T03:00:00.000Z
2025-09-30T18:32:58.7030434Z Form params: <none>
2025-09-30T18:32:58.7030789Z Path params: <none>
2025-09-30T18:32:58.7031240Z Headers: Accept=application/json;version=2
2025-09-30T18:32:58.7031867Z Authorization=apikey l2userkey
2025-09-30T18:32:58.7032280Z Cookies: <none>
2025-09-30T18:32:58.7032594Z Multiparts: <none>
2025-09-30T18:32:58.7032914Z Body: <none>
2025-09-30T18:32:58.7033098Z
2025-09-30T18:32:58.7033213Z HTTP/1.1 500
2025-09-30T18:32:58.7033764Z Strict-Transport-Security: max-age=31536000;includeSubDomains
2025-09-30T18:32:58.7034424Z X-Frame-Options: SAMEORIGIN
2025-09-30T18:32:58.7034918Z X-Content-Type-Options: nosniff
2025-09-30T18:32:58.7035805Z Set-Cookie: JSESSIONID=1293C54531B4F6EF8E06ABCE1F9F09F7; Path=/cwms-data; Secure; HttpOnly
2025-09-30T18:32:58.7036648Z X-XSS-Protection: 1; mode=block
2025-09-30T18:32:58.7037076Z ETag: 2144606775
2025-09-30T18:32:58.7037758Z Content-Type: application/json;charset=UTF-8
2025-09-30T18:32:58.7038239Z Content-Length: 83
2025-09-30T18:32:58.7038607Z Date: Tue, 30 Sep 2025 18:32:58 GMT
2025-09-30T18:32:58.7039282Z Connection: close
2025-09-30T18:32:58.7039484Z
2025-09-30T18:32:58.7039604Z {
2025-09-30T18:32:58.7039913Z "message": "System Error",
2025-09-30T18:32:58.7040376Z "incidentIdentifier": "-1402968679892546527",
2025-09-30T18:32:58.7040795Z "details": {
2025-09-30T18:32:58.7041078Z
2025-09-30T18:32:58.7041312Z }
2025-09-30T18:32:58.7041554Z }
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.