Sale Transaction With Promo Item Sent to QueueException Folder Due to "ORA-00972: identifier is too long" Error

(Doc ID 1390609.1)

Last updated on AUGUST 17, 2016

Applies to:

Oracle Retail Point-of-Service - Version 13.3 to 14.0 [Release 13.3 to 14.0]
Information in this document applies to any platform.

Symptoms

When items that are part of a promotion are sold in Oracle Retail Point of Service (ORPOS), the transaction fails to persist in the store database with the following exception.

Exception:

Class: oracle.retail.stores.foundation.manager.data.DataException(Revision $Revision: /main/14 $) @28631197: SQLState: 42000
Syntax error or access rule violation, Source Exception: java.sql.SQLException: ORA-00972: identifier is too long

Transaction Name: [TransactionWriteDataTransaction]

Error code: [1] [A Structured Query Language error occurred during database access.]
Error code (extended): [972]
Description: [SQLState: 42000
Syntax error or access rule violation, Source Exception: java.sql.SQLException: ORA-00972: identifier is too long
]
Query String: UPDATE TR_LTM_PRM SET NM_EV_LCL = 'en', NM_EV_RCPT = '(.-/\'"*&#`),;:', ID_PRM = 0, ID_PRM_CMP = 0, ID_PRCGP = -1, ID_PRM_CMP_DTL = 0, MO_MDFR_RT_PRC = -35.00, AI_LTM_PRM = 0 WHERE ID_STR_RT = '02011' AND ID_WS = '135' AND DC_DY_BSN = '2011-09-30' AND AI_TRN = 74 AND AI_LN_ITM = 0
Original exception: [null]

at oracle.retail.stores.foundation.manager.data.BaseJdbcSQLState.mapException(BaseJdbcSQLState.java:351)
at oracle.retail.stores.foundation.manager.data.JdbcDataConnection.throwDataException(JdbcDataConnection.java:1394)
at oracle.retail.stores.foundation.manager.data.JdbcDataConnection.execute(JdbcDataConnection.java:1027)
at oracle.retail.stores.foundation.manager.data.JdbcDataConnection.execute(JdbcDataConnection.java:894)
at oracle.retail.stores.domain.arts.JdbcSaveRetailTransactionLineItems.updatePromotionLineItem(JdbcSaveRetailTransactionLineItems.java:5015)
at oracle.retail.stores.domain.arts.JdbcSaveRetailTransactionLineItems.saveRetailPriceModifiers(JdbcSaveRetailTransactionLineItems.java:926)
at metro.retail.stores.domain.arts.MetroJdbcSaveRetailTransactionLineItems.updateSaleReturnLineItem(MetroJdbcSaveRetailTransactionLineItems.java:632)
at oracle.retail.stores.domain.arts.JdbcSaveRetailTransactionLineItems.updateSaleReturnLineItem(JdbcSaveRetailTransactionLineItems.java:1204)
at metro.retail.stores.domain.arts.MetroJdbcSaveRetailTransactionLineItems.saveSaleReturnLineItems(MetroJdbcSaveRetailTransactionLineItems.java:146)
at oracle.retail.stores.domain.arts.JdbcSaveRetailTransactionLineItems.saveRetailTransactionLineItems(JdbcSaveRetailTransactionLineItems.java:560)
at oracle.retail.stores.domain.arts.JdbcSaveRetailTransactionLineItems.execute(JdbcSaveRetailTransactionLineItems.java:522)
at oracle.retail.stores.foundation.manager.data.DataCommand.execute(DataCommand.java:353)
at oracle.retail.stores.foundation.manager.data.DataTransactionHelper.execute(DataTransactionHelper.java:103)
at oracle.retail.stores.foundation.manager.data.DataTransaction.execute(DataTransaction.java:191)
at oracle.retail.stores.foundation.manager.data.QueuedDataTransaction.execute(QueuedDataTransaction.java:81)
at oracle.retail.stores.foundation.tour.manager.Technician.receiveValet(Technician.java:708)
at oracle.retail.stores.foundation.manager.data.DataTechnician.receiveValet(DataTechnician.java:539)
at oracle.retail.stores.platform.client.manager.connector.TechnicianConnector.sendValet(TechnicianConnector.java:84)
at oracle.retail.stores.platform.client.manager.connector.TechnicianConnector.send(TechnicianConnector.java:71)
at oracle.retail.stores.platform.client.message.connector.Connector.sendMessage(Connector.java:127)
at oracle.retail.stores.platform.client.message.RouterConnector.sendMessage(RouterConnector.java:58)
at oracle.retail.stores.platform.client.message.MessageRouter.processMessage(MessageRouter.java:132)
at oracle.retail.stores.platform.client.message.MessageDispatcher.sendMessage(MessageDispatcher.java:318)
at oracle.retail.stores.platform.client.manager.BaseTechnician.receiveValet(BaseTechnician.java:179)
at oracle.retail.stores.foundation.comm.proxy.rmi.RMICommProxy.remoteTransport(RMICommProxy.java:268)
at sun.reflect.GeneratedMethodAccessor27.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:592)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:294)
at sun.rmi.transport.Transport$1.run(Transport.java:153)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:149)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:466)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:707)
at java.lang.Thread.run(Thread.java:595)


Steps to Reproduce:

  1. Create a promotion in Oracle Retail Back Office (ORBO) with the description: {(.-/\'"*&#'),;: }
  2. Log in to Oracle Retail Point of Service (ORPOS) and scan that item.
  3. Complete tender.
  4. Transaction fails to persist and sent to the QueueException folder on the POS server.

Cause

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms