String (unlimited) dbms_lob.substr(.. Failing on form display
0
Hi. We are in the process upgrading from mendix 4.9 to 7.9. One of my attributes is an String (Unlimited) which is of type nclob in the oracle database. Problem we having is any screens we have in the past (working in 4.9) displaying this data is giving the error Msg = ORA-06502: PL/SQL: numeric or value error: character string buffer too small error due to mendix retrieve doing a substring in his query. dbms_lob.substr("BLAZEJE$CREDITORIGINATIONDECI2"."DECISIONTRACE"), See full error below. Have anyone find a solution for this. com.mendix.core.CoreRuntimeException: Exception occurred in action '{"xpath":"//BlazeJedi.CreditOriginationDecisionRequest[id=95420017106570567]","amount":0,"offset":0,"returnsCount":false,"sort":[],"type":"RetrieveXPathSchemaRawAction"}', all database changes executed by this action were rolled back at com.mendix.basis.actionmanagement.CoreActionHandlerImpl.processErrorState(CoreActionHandlerImpl.scala:157) Caused by: java.util.concurrent.ExecutionException: com.mendix.basis.connectionbus.ConnectionBusException: Exception occurred while retrieving data. (SQL State: 65000, Error Code: 6502) Detail Message: Error : 6502, Position : 217, Sql = SELECT DISTINCT "BLAZEJE$CREDITORIGINATIONDECI2"."ID", "BLAZEJE$CREDITORIGINATIONDECI2"."DECISIONPHASE", "BLAZEJE$CREDITORIGINATIONDECI2"."RESPONSETIMESTAMP", "BLAZEJE$CREDITORIGINATIONDECI2"."DECISIONMODEL", dbms_lob.substr("BLAZEJE$CREDITORIGINATIONDECI2"."DECISIONTRACE"), "BLAZEJE$CREDITORIGINATIONDECI2"."REQUESTID", "BLAZEJE$CREDITORIGINATIONDECI2"."DECISIONLOGICRELEASENOTE", "BLAZEJE$CREDITORIGINATIONDECI2"."DECISIONSERVICEVERSION", "BLAZEJE$CREDITORIGINATIONDECI2"."DECISIONLOGICVERSION", "BLAZEJE$CREDITORIGINATIONDECI2"."STATUS" FROM "BLAZEJE$CREDITORIGINATIONDECI2" INNER JOIN "BLAZ$CREDITORIGIN_CREDITORIGIN" "C1BLA$CREDITORIGI_CREDITORIGIN" ON "C1BLA$CREDITORIGI_CREDITORIGIN"."BLAZEJE$CREDITORIGINATIONDECIS" = "BLAZEJE$CREDITORIGINATIONDECI2"."ID" WHERE "C1BLA$CREDITORIGI_CREDITORIGIN"."BLAZEJ$CREDITORIGINATIONDECIS2" = 95420017106570567, OriginalSql = SELECT DISTINCT "BLAZEJE$CREDITORIGINATIONDECI2"."ID", "BLAZEJE$CREDITORIGINATIONDECI2"."DECISIONPHASE", "BLAZEJE$CREDITORIGINATIONDECI2"."RESPONSETIMESTAMP", "BLAZEJE$CREDITORIGINATIONDECI2"."DECISIONMODEL", dbms_lob.substr("BLAZEJE$CREDITORIGINATIONDECI2"."DECISIONTRACE"), "BLAZEJE$CREDITORIGINATIONDECI2"."REQUESTID", "BLAZEJE$CREDITORIGINATIONDECI2"."DECISIONLOGICRELEASENOTE", "BLAZEJE$CREDITORIGINATIONDECI2"."DECISIONSERVICEVERSION", "BLAZEJE$CREDITORIGINATIONDECI2"."DECISIONLOGICVERSION", "BLAZEJE$CREDITORIGINATIONDECI2"."STATUS" FROM "BLAZEJE$CREDITORIGINATIONDECI2" INNER JOIN "BLAZ$CREDITORIGIN_CREDITORIGIN" "C1BLA$CREDITORIGI_CREDITORIGIN" ON "C1BLA$CREDITORIGI_CREDITORIGIN"."BLAZEJE$CREDITORIGINATIONDECIS" = "BLAZEJE$CREDITORIGINATIONDECI2"."ID" WHERE "C1BLA$CREDITORIGI_CREDITORIGIN"."BLAZEJ$CREDITORIGINATIONDECIS2" = 95420017106570567, Error Msg = ORA-06502: PL/SQL: numeric or value error: character string buffer too small ORA-06512: at line 1 at java.util.concurrent.FutureTask.report(FutureTask.java:122) at java.util.concurrent.FutureTask.get(FutureTask.java:192) at com.mendix.connectionbus.retrieve.dependentexecutions.QueryExecution.$anonfun$getDataSet$3(QueryExecution.scala:20) at scala.collection.immutable.List.map(List.scala:283) at com.mendix.connectionbus.retrieve.dependentexecutions.QueryExecution.getAndMergeResult$1(QueryExecution.scala:20) at com.mendix.connectionbus.retrieve.dependentexecutions.QueryExecution.getDataSet(QueryExecution.scala:29) at com.mendix.connectionbus.retrieve.dependentexecutions.AssociationDataRetriever.handleQueryResult(AssociationDataRetriever.java:156) at com.mendix.connectionbus.retrieve.dependentexecutions.AssociationDataRetriever.executeQueriesPerQueryInstance(AssociationDataRetriever.java:114) at com.mendix.connectionbus.retrieve.dependentexecutions.AssociationDataRetriever.executeQueryInstances(AssociationDataRetriever.java:89) at com.mendix.connectionbus.retrieve.dependentexecutions.AssociationDataRetriever.executeQueries(AssociationDataRetriever.java:62) at com.mendix.connectionbus.retrieve.dependentexecutions.AssociationDataRetriever.executeAssociationQueries(AssociationDataRetriever.java:36) at com.mendix.connectionbus.retrieve.dependentexecutions.DependentDataRetriever.executeQueries(DependentDataRetriever.java:47) at com.mendix.connectionbus.retrieve.DataStoreCaller.executeQueries(DataStoreCaller.java:158) at com.mendix.connectionbus.retrieve.DataStoreCaller.executeQueries(DataStoreCaller.java:119) at com.mendix.connectionbus.retrieve.DataStoreCaller.getResult(DataStoreCaller.java:52) at com.mendix.connectionbus.retrieve.GetRequestHandler.doRequest(GetRequestHandler.java:78) at com.mendix.connectionbus.RequestAnalyzer.doRequest(RequestAnalyzer.java:48) at com.mendix.connectionbus.ConnectionBusImpl.doRequest(ConnectionBusImpl.java:450) at com.mendix.basis.action.user.RetrieveXPathSchemaRawAction.retrieveXPathSchemaRaw(RetrieveXPathSchemaRawAction.java:161) at com.mendix.basis.action.user.RetrieveXPathSchemaRawAction.executeAction(RetrieveXPathSchemaRawAction.java:129) at com.mendix.basis.action.user.RetrieveXPathSchemaRawAction.executeAction(RetrieveXPathSchemaRawAction.java:25) at com.mendix.systemwideinterfaces.core.UserAction.execute(UserAction.java:50) at com.mendix.basis.actionmanagement.CoreActionHandlerImpl.doCall(CoreActionHandlerImpl.scala:76) at com.mendix.basis.actionmanagement.CoreActionHandlerImpl.call(CoreActionHandlerImpl.scala:55) at com.mendix.core.actionmanagement.CoreAction.call(CoreAction.java:55) at com.mendix.webui.RetrieveUtils.retrieveByXPathRaw(RetrieveUtils.scala:58) at com.mendix.webui.RetrieveUtils.retrieveById(RetrieveUtils.scala:36) at com.mendix.webui.actions.client.RetrieveByIdsAction.execute(RetrieveByIdsAction.scala:40) at com.mendix.webui.requesthandling.ClientRequestHandler.$anonfun$handleRequest$2(ClientRequestHandler.scala:328) at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12) at com.mendix.basis.actionmanagement.IMonitoredAction$$anon$1.execute(IMonitoredAction.scala:47) at com.mendix.util.classloading.Runner.doRunUsingClassLoaderOf(Runner.java:32) at com.mendix.basis.actionmanagement.IMonitoredAction.monitor(IMonitoredAction.scala:49) at com.mendix.basis.actionmanagement.IMonitoredAction.monitor$(IMonitoredAction.scala:25) at com.mendix.webui.requesthandling.ClientRequestHandler$ClientMonitoredAction.monitor(ClientRequestHandler.scala:431) at com.mendix.webui.requesthandling.ClientRequestHandler.handleRequest(ClientRequestHandler.scala:313) at com.mendix.webui.requesthandling.ClientRequestHandler.handleActionWithSessionRequired(ClientRequestHandler.scala:251) at com.mendix.webui.requesthandling.ClientRequestHandler.handleAction(ClientRequestHandler.scala:220) at com.mendix.webui.requesthandling.ClientRequestHandler.liftedTree1$1(ClientRequestHandler.scala:104) at com.mendix.webui.requesthandling.ClientRequestHandler.processRequest(ClientRequestHandler.scala:96) at com.mendix.externalinterface.connector.RequestHandler.doProcessRequest(RequestHandler.java:40) at com.mendix.external.connector.MxRuntimeConnector$1.execute(MxRuntimeConnector.java:70) at com.mendix.external.connector.MxRuntimeConnector$1.execute(MxRuntimeConnector.java:67) at com.mendix.util.classloading.Runner.doRunUsingClassLoaderOf(Runner.java:32) at com.mendix.external.connector.MxRuntimeConnector.processRequest(MxRuntimeConnector.java:73) at com.mendix.basis.impl.MxRuntimeImpl.processRequest(MxRuntimeImpl.java:862) at com.mendix.m2ee.appcontainer.server.handler.RuntimeHandler.service(RuntimeHandler.java:42) at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:841) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:535) at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595) at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1253) at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:168) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564) at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:166) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1155) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) at org.eclipse.jetty.server.Server.handle(Server.java:561) at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:334) at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251) at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:279) at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:104) at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:124) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:247) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.produce(EatWhatYouKill.java:140) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131) at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:243) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:679) at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:597) at java.lang.Thread.run(Thread.java:745) Caused by: com.mendix.basis.connectionbus.ConnectionBusException: Exception occurred while retrieving data. (SQL State: 65000, Error Code: 6502) Detail Message: Error : 6502, Position : 217, Sql = SELECT DISTINCT "BLAZEJE$CREDITORIGINATIONDECI2"."ID", "BLAZEJE$CREDITORIGINATIONDECI2"."DECISIONPHASE", "BLAZEJE$CREDITORIGINATIONDECI2"."RESPONSETIMESTAMP", "BLAZEJE$CREDITORIGINATIONDECI2"."DECISIONMODEL", dbms_lob.substr("BLAZEJE$CREDITORIGINATIONDECI2"."DECISIONTRACE"), "BLAZEJE$CREDITORIGINATIONDECI2"."REQUESTID", "BLAZEJE$CREDITORIGINATIONDECI2"."DECISIONLOGICRELEASENOTE", "BLAZEJE$CREDITORIGINATIONDECI2"."DECISIONSERVICEVERSION", "BLAZEJE$CREDITORIGINATIONDECI2"."DECISIONLOGICVERSION", "BLAZEJE$CREDITORIGINATIONDECI2"."STATUS" FROM "BLAZEJE$CREDITORIGINATIONDECI2" INNER JOIN "BLAZ$CREDITORIGIN_CREDITORIGIN" "C1BLA$CREDITORIGI_CREDITORIGIN" ON "C1BLA$CREDITORIGI_CREDITORIGIN"."BLAZEJE$CREDITORIGINATIONDECIS" = "BLAZEJE$CREDITORIGINATIONDECI2"."ID" WHERE "C1BLA$CREDITORIGI_CREDITORIGIN"."BLAZEJ$CREDITORIGINATIONDECIS2" = 95420017106570567, OriginalSql = SELECT DISTINCT "BLAZEJE$CREDITORIGINATIONDECI2"."ID", "BLAZEJE$CREDITORIGINATIONDECI2"."DECISIONPHASE", "BLAZEJE$CREDITORIGINATIONDECI2"."RESPONSETIMESTAMP", "BLAZEJE$CREDITORIGINATIONDECI2"."DECISIONMODEL", dbms_lob.substr("BLAZEJE$CREDITORIGINATIONDECI2"."DECISIONTRACE"), "BLAZEJE$CREDITORIGINATIONDECI2"."REQUESTID", "BLAZEJE$CREDITORIGINATIONDECI2"."DECISIONLOGICRELEASENOTE", "BLAZEJE$CREDITORIGINATIONDECI2"."DECISIONSERVICEVERSION", "BLAZEJE$CREDITORIGINATIONDECI2"."DECISIONLOGICVERSION", "BLAZEJE$CREDITORIGINATIONDECI2"."STATUS" FROM "BLAZEJE$CREDITORIGINATIONDECI2" INNER JOIN "BLAZ$CREDITORIGIN_CREDITORIGIN" "C1BLA$CREDITORIGI_CREDITORIGIN" ON "C1BLA$CREDITORIGI_CREDITORIGIN"."BLAZEJE$CREDITORIGINATIONDECIS" = "BLAZEJE$CREDITORIGINATIONDECI2"."ID" WHERE "C1BLA$CREDITORIGI_CREDITORIGIN"."BLAZEJ$CREDITORIGINATIONDECIS2" = 95420017106570567, Error Msg = ORA-06502: PL/SQL: numeric or value error: character string buffer too small ORA-06512: at line 1 at com.mendix.connectionbus.connections.jdbc.JdbcDataStore.getCorrectException(JdbcDataStore.java:729) Caused by: java.sql.SQLException: ORA-06502: PL/SQL: numeric or value error: character string buffer too small ORA-06512: at line 1 at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:494) at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:446) at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1054) at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:623) at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:252) at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:612) at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:213) at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:37) at oracle.jdbc.driver.T4CStatement.executeForDescribe(T4CStatement.java:733) at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:904) at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1082) at oracle.jdbc.driver.OracleStatement.executeQuery(OracleStatement.java:1276) at oracle.jdbc.driver.OracleStatementWrapper.executeQuery(OracleStatementWrapper.java:366) at org.apache.commons.dbcp2.DelegatingStatement.executeQuery(DelegatingStatement.java:207) at org.apache.commons.dbcp2.DelegatingStatement.executeQuery(DelegatingStatement.java:207) at com.mendix.connectionbus.connections.jdbc.JdbcDataStore.execRetrieveQuery(JdbcDataStore.java:308) at com.mendix.connectionbus.connections.jdbc.JdbcDataStore.execRetrieveQueries(JdbcDataStore.java:191) at com.mendix.connectionbus.connections.jdbc.JdbcDataStore.retrieve(JdbcDataStore.java:155) at com.mendix.connectionbus.connections.jdbc.JdbcDataStore.retrieve(JdbcDataStore.java:150) at com.mendix.connectionbus.connections.DataStoreRetrieveAction.call(DataStoreRetrieveAction.java:29) at com.mendix.connectionbus.connections.DataStoreRetrieveAction.call(DataStoreRetrieveAction.java:11) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Caused by: oracle.jdbc.OracleDatabaseException: ORA-06502: PL/SQL: numeric or value error: character string buffer too small ORA-06512: at line 1 at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:498) at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:446) at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1054) at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:623) at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:252) at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:612) at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:213) at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:37) at oracle.jdbc.driver.T4CStatement.executeForDescribe(T4CStatement.java:733) at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:904) at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1082) at oracle.jdbc.driver.OracleStatement.executeQuery(OracleStatement.java:1276) at oracle.jdbc.driver.OracleStatementWrapper.executeQuery(OracleStatementWrapper.java:366) at org.apache.commons.dbcp2.DelegatingStatement.executeQuery(DelegatingStatement.java:207) at org.apache.commons.dbcp2.DelegatingStatement.executeQuery(DelegatingStatement.java:207) at com.mendix.connectionbus.connections.jdbc.JdbcDataStore.execRetrieveQuery(JdbcDataStore.java:308) at com.mendix.connectionbus.connections.jdbc.JdbcDataStore.execRetrieveQueries(JdbcDataStore.java:191) at com.mendix.connectionbus.connections.jdbc.JdbcDataStore.retrieve(JdbcDataStore.java:155) at com.mendix.connectionbus.connections.jdbc.JdbcDataStore.retrieve(JdbcDataStore.java:150) at com.mendix.connectionbus.connections.DataStoreRetrieveAction.call(DataStoreRetrieveAction.java:29) at com.mendix.connectionbus.connections.DataStoreRetrieveAction.call(DataStoreRetrieveAction.java:11) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745)
asked
Frankie Dumas
1 answers
0
We had similar problems using oracle in the past. For that we ended up changing all the unlimited strings to limited ones.