Description
The SQL statement generated by org.apache.ignite.cache.store.jdbc.dialect.BasicJdbcDialect#loadCacheSelectRangeQuery looks like this:
SELECT KEY_COLUMN_1,KEY_COLUMN_2 FROM (SELECT KEY_COLUMN_1,KEY_COLUMN_2, ROWNUM() AS rn FROM SOME_TABLE ORDER BY KEY_COLUMN_1,KEY_COLUMN_2) WHERE mod(rn, ?) = 0
For Oracle this is incorrect, as Oracle does not have a ROWNUM() function. For the above query the following error is thrown: ORA-00923: FROM keyword not found where expected
Regarding row numbering Oracle has:
- a ROWNUM pseudocolumn, in which case the query should have ROWNUM AS rn
- a ROW_NUMBER() function, in which case the query would become more complicated. See https://docs.oracle.com/database/121/SQLRF/functions170.htm#SQLRF06100 for more details about ROW_NUMBER()
Please make the neccessary adjustments to either BasicJdbcDialect or OracleDialect so that a correct query is produced.