![]() | ![]() | ![]() | ![]() | ![]() |
When attempting a product search in SAS Markdown Optimization with an Oracle database and a global setting value for MAX_FIND_PRODUCT_DETAILS greater than or equal to 1000, you might encounter a mid-tier exception that indicates too many elements in the SQL IN clause. In such a circumstance, the mid-tier server log will contain an exception similar to the following:
Caused by: org.hibernate.exception.SQLGrammarException: could not execute query at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67) at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43) at org.hibernate.loader.Loader.doList(Loader.java:2216) at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104) at org.hibernate.loader.Loader.list(Loader.java:2099) at org.hibernate.loader.custom.CustomLoader.list(CustomLoader.java:289) at org.hibernate.impl.SessionImpl.listCustomQuery(SessionImpl.java:1695) at org.hibernate.impl.AbstractSessionImpl.list(AbstractSessionImpl.java:142) at org.hibernate.impl.SQLQueryImpl.list(SQLQueryImpl.java:152) at com.sas.solutions.di.server.db.PersistenceManager.loadValueObjects(PersistenceManager.java:603) at com.sas.solutions.di.server.dm.ProductService.findProductDetails(ProductService.java:725)
Caused by: java.sql.SQLException: ORA-01795: maximum number of expressions in a list is 1000 at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288) at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:743) at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:213) at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:796) at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1031) at oracle.jdbc.driver.T4CPreparedStatement.executeMaybeDescribe(T4CPreparedStatement.java:836) at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1124) at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3285) at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3329) at org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:92) at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:186) at org.hibernate.loader.Loader.getResultSet(Loader.java:1787) at org.hibernate.loader.Loader.doQuery(Loader.java:674) at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236) at org.hibernate.loader.Loader.doList(Loader.java:2213)
Select the Hot Fix tab in this note to access the hot fix for this issue.
Product Family | Product | System | Product Release | SAS Release | ||
Reported | Fixed* | Reported | Fixed* | |||
SAS System | SAS Markdown Optimization | Microsoft® Windows® for x64 | 3.2 | 4.2 | 9.1 TS1M3 SP4 | 9.2 TS2M0 |
Microsoft Windows Server 2003 Datacenter Edition | 3.2 | 4.2 | 9.1 TS1M3 SP4 | 9.2 TS2M0 | ||
Microsoft Windows Server 2003 Enterprise Edition | 3.2 | 4.2 | 9.1 TS1M3 SP4 | 9.2 TS2M0 | ||
Microsoft Windows Server 2003 Standard Edition | 3.2 | 4.2 | 9.1 TS1M3 SP4 | 9.2 TS2M0 | ||
Microsoft Windows XP Professional | 3.2 | 4.2 | 9.1 TS1M3 SP4 | 9.2 TS2M0 | ||
Windows Vista | 3.2 | 4.2 | 9.1 TS1M3 SP4 | 9.2 TS2M0 | ||
64-bit Enabled AIX | 3.2 | 4.2 | 9.1 TS1M3 SP4 | 9.2 TS2M0 |