Estou usando o método de paginação(acho que peguei aqui):
public static String paging(String strSQL, int intInicio, int intLimite) {
return "SELECT * FROM (SELECT PAGING.*, ROWNUM PAGING_RN FROM" +
" (" + strSQL + ") PAGING WHERE (ROWNUM <= " + intLimite + "))" +
" WHERE (PAGING_RN >= " + intInicio + ")";
}
Mas recebo esse erro ao clicar no botão de prosseguir:
java.sql.SQLSyntaxErrorException: ORA-00918: coluna definida de maneira ambígua
at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:91)
at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:133)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:206)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:455)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:413)
at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:1034)
at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:183)
at oracle.jdbc.driver.T4CStatement.executeForDescribe(T4CStatement.java:780)
at oracle.jdbc.driver.T4CStatement.executeMaybeDescribe(T4CStatement.java:855)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1186)
at oracle.jdbc.driver.OracleStatement.doScrollExecuteCommon(OracleStatement.java:4219)
at oracle.jdbc.driver.OracleStatement.doScrollStmtExecuteQuery(OracleStatement.java:4348)
at oracle.jdbc.driver.OracleStatement.executeQuery(OracleStatement.java:1384)
at oracle.jdbc.driver.OracleStatementWrapper.executeQuery(OracleStatementWrapper.java:387)
at br.testes.model.PagingTableModel.setQuery(PagingTableModel.java:105)
at br.testes.gui.PaginadorFrame$7.run(PaginadorFrame.java:298)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
java.sql.SQLException: ORA-01003: não há instrução analisada
O detalhe é que a consulta normal:
"SELECT A.CONTROLE,C.REGISTRO,U.REGISTRO FROM ANTIDOPING A,CONTRAPROVA C,USUARIO U WHERE C.REGISTRO= U.REGISTRO AND A.REGISTRO= U.REGISTRO";
Funciona perfeitamente e carrega minha jtable com 10000linhas sem problemas.
A saída do método paging:
Consulta:SELECT * FROM (SELECT PAGING.*, ROWNUM PAGING_RN FROM (SELECT A.CONTROLE,C.REGISTRO,U.REGISTRO FROM ANTIDOPING A,CONTRAPROVA C,USUARIO U WHERE C.REGISTRO= U.REGISTRO AND A.REGISTRO= U.REGISTRO) PAGING WHERE (ROWNUM <= 200)) WHERE (PAGING_RN >= 100)
Porquê a string gerada pelo método paging dá esse erro?