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
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.

answered