Necesito manejar resultados que devuelven procedimientos/funciones almacenados para tres bases de datos (Oracle, sybase, MS-Server). Los procedimientos/funciones son generalmente los mismos, pero la llamada es un poco diferente en Oracle.¿Cómo determinar el tipo de base de datos para una conexión JDBC determinada?
statement.registerOutParameter(1, oracle.jdbc.OracleTypes.CURSOR);
...
statement.execute();
ResultSet rs = (ResultSet)statement.getObject(1);
JDBC no proporciona una forma genérica para manejar esto, por lo que tendrá que distinguir los diferentes tipos de DBS en mi código. Me dieron la conexión pero no sé cuál es la mejor manera de determinar si el DB es Oracle. Puedo usar el nombre del controlador, pero preferiría encontrar una manera más limpia.
Microsoft SQL Server da "Microsoft SQL Server" para el nombre del producto. – OldCurmudgeon
Oracle da "Oracle" – OldCurmudgeon
PostgreSQL da "PostgreSQL" –