Estou desenvolvendo uma aplicação e estou com um problema enorme.
A politica da empresa requer que os dados sejam acessados apenas via stored procedures… pra select, insert, update e delete. A mesma aplicação roda em algumas unidades em Oracle e/ou SQLServer . Para fazer insert, updates e deletes tudo bem… mas quando chega na parte do select tudo se complica… No SQLServer, vc cria uma procedure e ela retorna um resultSet… No Oracle isso não é possível. Como faço para executar uma procedure que retorne dados, de maneira padrão? Isso quer dizer… qual a maneira correta de criar as procedures e qual a maneira correta de chama-las para o negócio ficar portavel… Não gostaria muito de ter que usar os patterns tipo Abstract Factory ou coisa do tipo. Afinal JDBC é ou não portável? Terei que utilizar apenas select puro? Por que o desempenho fica comprometido nesse caso… Stored Procedures sào muito mais rápidas… rs.
Eu testei este ontem.. . mas mesmo assim, muito obrigado... Essa abordagem funciona no Oracle, mas não é padrão :(
//-- Cria o objeto de acesso a procedure.CallableStatementst=conn.prepareCall("{?=callPKG_TESTE.FC_UNIDADES_FEDERATIVAS(?,?)}");//-- Recordset de saida.st.registerOutParameter(1,oracle.jdbc.OracleTypes.CURSOR);//-- Parâmetros de saida.
Isso me obriga a codificação dependente do banco de dados.