While rescaning (for datamodel) a MS SQL database which has been already profiled we had an error:
post processing failed with an exception: Exception raised: InvalidDataAccessResourceUsageException: could not execute statement; SQL [n/a]; nested exception is org.hibernate.exception.SQLGrammarException: could not execute statement
In the log of the datamodel service, we have this error:
limits the number of elements in an IN predicate to 1000 entries. However, the given parameter list [list] contained 1803 entries, which will likely cause failures to execute the query in the database
Would it be possible to split the request when there is more than 1000 entries?
If we create another version in the project and do the scan for the datamodel, it finished correctly.
2021-09-15 18:18:01.529 UTC [ERROR] [ModellingEngine-DATADISCOVERY-jobId-21940] --- [U:][M:][P:] c.c.t.d.e.DataModelEngine: findRelationships: Exception caught in findRelationships; will rethrow. exception: could not execute statement; SQL [n/a]; nested exception is org.hibernate.exception.SQLGrammarException: could not execute statement
oracle.jdbc.OracleDatabaseException: ORA-01795: maximum number of expressions in a list is 1000
... 76 common frames omitted
Wrapped by: java.sql.SQLSyntaxErrorException: ORA-01795: maximum number of expressions in a list is 1000
There are the followings steps to reproduce the error: the DB was already scanned and tagged with more than 1000 tables.
-Select a project and version
-Go to Modeling/Environments
-Select environment which already exist
-Click on CREATE DATA MODEL button
-Add a Exclude: Entity Type: View / Entity Name:*
-Click on SCAN button
-Click on YES button to confirm scan
Error than the datamodel can not be completed
We are currently at version 4.9.356 of TDM Portal and version 4.9.196 of FDM
Release : 4.9.1
Component : Web Portal - Data Modeling
TDMWeb-4.9.360.0.zip - Resolves the issue.